Statistics

Problem Statement for "CutTheNumbers"

Problem Statement

Manao has a board filled with digits represented as String[] board. The j-th character of the i-th element of board represents the digit written in cell in row i, column j of the board. The rows are numbered from top to bottom and the columns are numbered from left to right.

Manao is going to cut it into several non-overlapping fragments. Each of the fragments will be a horizontal or vertical strip containing 1 or more elements. A strip of length N can be interpreted as an N-digit number in base 10 by concatenating the digits on the strip in order. The horizontal strips are read from left to right and the vertical strips are read from top to bottom. The picture below shows a possible cutting of a 4x4 board:

The sum of the numbers on the fragments in this picture is 493 + 7160 + 23 + 58 + 9 + 45 + 91 = 7879.

Manao wants to cut the board in such a way that the sum of the numbers on the resulting fragments is the maximum possible. Compute and return this sum.

Definition

Class:
CutTheNumbers
Method:
maximumSum
Parameters:
String[]
Returns:
int
Method signature:
int maximumSum(String[] board)
(be sure your method is public)

Notes

  • The numbers on the cut strips are allowed to have leading zeros. See example #2 for details.

Constraints

  • board will contain between 1 and 4 elements, inclusive.
  • board[0] will be between 1 and 4 characters long, inclusive.
  • Each element of board will be of the same length as board[0].
  • Each character in board will be a decimal digit ('0'-'9').

Examples

  1. {"123", "312"}

    Returns: 435

    Manao can cut out both rows in whole, obtaining 123 + 312 = 435. He also could cut the columns one by one for a total of 66, or cut the first column and the residual rows one by one, obtaining 13 + 23 + 12 = 48, or even cut out single elements, but would not get a better sum.

  2. {"99", "11"}

    Returns: 182

    It's better to cut out the whole columns.

  3. {"001", "010", "111", "100"}

    Returns: 1131

    The numbers on the strips may have leading zeros. Cutting the columns in whole, Manao obtains 0011 + 0110 + 1010 = 1131.

  4. {"8"}

    Returns: 8

  5. {"0011", "0011", "0011", "1111"}

    Returns: 2233

  6. {"0002","0101","1011","0202"}

    Returns: 2243

  7. {"0001","0000","1011","2002"}

    Returns: 3023

  8. {"0002","0011","0012","2210"}

    Returns: 2433

  9. {"0011","0001","1021","2021"}

    Returns: 3063

  10. {"0020","0011","0002","2211"}

    Returns: 2433

  11. {"0011","0102","0101","2110"}

    Returns: 2342

  12. {"0021","0000","0012","2201"}

    Returns: 3053

  13. {"0020","0011","0000","1002"}

    Returns: 2212

  14. {"0"}

    Returns: 0

  15. {"0000"}

    Returns: 0

  16. {"9999"}

    Returns: 9999

  17. {"9999","9999","9999","9999"}

    Returns: 39996

  18. {"0341","5155","7470","6513"}

    Returns: 19479

  19. {"0003","0121","0032","3122"}

    Returns: 3467

  20. {"2003","1002","0103","1201"}

    Returns: 5362

  21. {"0023","0020","0230","3200"}

    Returns: 5264

  22. {"0000","0001","0002","1022"}

    Returns: 1034

  23. {"0013","0022","3111","2203"}

    Returns: 5358

  24. {"2220","0012","0011"}

    Returns: 2252

  25. {"1200","0002","0001"}

    Returns: 1221

  26. {"2020","0012","0002"}

    Returns: 2052

  27. {"2000","0022","0010"}

    Returns: 2041

  28. {"2202","0002","0010"}

    Returns: 2223

  29. {"0022","0011","1002"}

    Returns: 1044

  30. {"0002","0012","2210"}

    Returns: 2233

  31. {"1211","0012","0010"}

    Returns: 1242

  32. {"002","001","202","211"}

    Returns: 2162

  33. {"100","000","001","020"}

    Returns: 1021

  34. {"001","000","000","222"}

    Returns: 1024

  35. {"009","013","888"}

    Returns: 1027

  36. {"009","322","605"}

    Returns: 1017

  37. {"003","108","269"}

    Returns: 425

  38. {"027","017","996"}

    Returns: 1094

  39. {"082","000","952"}

    Returns: 1052

  40. {"015","026","929"}

    Returns: 997

  41. {"044","038","863"}

    Returns: 954

  42. {"027","010","984"}

    Returns: 1075

  43. {"009","331","533"}

    Returns: 999

  44. {"007","219","474"}

    Returns: 862

  45. {"013","003","938"}

    Returns: 981

  46. {"008","142","746"}

    Returns: 914

  47. {"005","020","890"}

    Returns: 942

  48. {"002","008","481"}

    Returns: 509

  49. {"008","126","690"}

    Returns: 941

  50. {"041","004","576"}

    Returns: 630

  51. {"004","019","719"}

    Returns: 769

  52. {"002","011","823"}

    Returns: 845

  53. {"009","400","573"}

    Returns: 1000

  54. {"004","015","632"}

    Returns: 678

  55. {"042","012","791"}

    Returns: 854

  56. {"007","215","466"}

    Returns: 823

  57. {"004","009","252"}

    Returns: 517

  58. {"041","009","956"}

    Returns: 1015

  59. {"026","043","817"}

    Returns: 904

  60. {"008","145","688"}

    Returns: 940

  61. {"042","016","638"}

    Returns: 705

  62. {"007","316","417"}

    Returns: 839

  63. {"004","028","886"}

    Returns: 936

  64. {"052","017","803"}

    Returns: 881

  65. {"005","126","376"}

    Returns: 615

  66. {"018","044","908"}

    Returns: 1006

  67. {"008","337","619"}

    Returns: 973

  68. {"007","109","688"}

    Returns: 876

  69. {"006","102","374"}

    Returns: 671

  70. {"026","008","891"}

    Returns: 979

  71. {"034","035","781"}

    Returns: 859

  72. {"003","010","763"}

    Returns: 794

  73. {"027","015","900"}

    Returns: 996

  74. {"005","134","448"}

    Returns: 605

  75. {"007","220","304"}

    Returns: 756

  76. {"044","022","933"}

    Returns: 1017

  77. {"007","022","879"}

    Returns: 953

  78. {"037","007","997"}

    Returns: 1104

  79. {"041","003","563"}

    Returns: 616

  80. {"034","039","849"}

    Returns: 931

  81. {"007","110","337"}

    Returns: 751

  82. {"009","304","320"}

    Returns: 1002

  83. {"006","048","650"}

    Returns: 749

  84. {"008","142","626"}

    Returns: 902

  85. {"009","024","507"}

    Returns: 999

  86. {"004","037","426"}

    Returns: 521

  87. {"033","025","643"}

    Returns: 710

  88. {"052","008","871"}

    Returns: 949

  89. {"043","017","971"}

    Returns: 1049

  90. {"022","015","513"}

    Returns: 559

  91. {"032","017","880"}

    Returns: 938

  92. {"006","025","911"}

    Returns: 978

  93. {"009","413","523"}

    Returns: 1026

  94. {"009","016","379"}

    Returns: 1007

  95. {"008","014","685"}

    Returns: 914

  96. {"045","002","860"}

    Returns: 952

  97. {"005","100","132"}

    Returns: 525

  98. {"002","008","881"}

    Returns: 909

  99. {"004","209","195"}

    Returns: 534

  100. {"007","224","389"}

    Returns: 809

  101. {"023","006","550"}

    Returns: 606

  102. {"015","004","699"}

    Returns: 763

  103. {"021","001","440"}

    Returns: 471

  104. {"004","123","310"}

    Returns: 473

  105. {"002","101","100"}

    Returns: 230

  106. {"001","000","320"}

    Returns: 330

  107. {"002","101","103"}

    Returns: 233

  108. {"022","013","432"}

    Returns: 476

  109. {"004","204","232"}

    Returns: 485

  110. {"001","000","110"}

    Returns: 120

  111. {"001","000","100"}

    Returns: 110

  112. {"001","001","101"}

    Returns: 121

  113. {"001","000","111"}

    Returns: 121

  114. {"0018","0026","7020"}

    Returns: 7118

  115. {"5325","1242"}

    Returns: 6567

  116. {"1","2","3","1"}

    Returns: 1231

  117. {"001","002","301","302"}

    Returns: 1272

  118. {"200","200","010","311"}

    Returns: 2224

  119. {"002","004","021","443"}

    Returns: 2459

  120. {"100","200","331","230"}

    Returns: 1293

  121. {"372"}

    Returns: 372

  122. {"2","4","6"}

    Returns: 246

  123. {"9","1","8","6"}

    Returns: 9186

  124. {"403","027","245"}

    Returns: 801

  125. {"569","339","053","679"}

    Returns: 21602

  126. {"27","19"}

    Returns: 100

  127. {"24"}

    Returns: 24

  128. {"8761"}

    Returns: 8761

  129. {"975","656","271"}

    Returns: 2280

  130. {"188","964"}

    Returns: 1152

  131. {"175"}

    Returns: 175

  132. {"8769","3043","3841","7303"}

    Returns: 31173

  133. {"9","8"}

    Returns: 98

  134. {"0679","5936"}

    Returns: 6615

  135. {"21"}

    Returns: 21

  136. {"1855","3436","5720"}

    Returns: 11011

  137. {"8","9","9","5"}

    Returns: 8995

  138. {"9006","0211"}

    Returns: 9217

  139. {"0264","7702","5816","5552"}

    Returns: 19334

  140. {"8","8","2","4"}

    Returns: 8824

  141. {"9289","4508","6731"}

    Returns: 20528

  142. {"8","1","6"}

    Returns: 816

  143. {"576"}

    Returns: 576

  144. {"755","523","389"}

    Returns: 1820

  145. {"710","778","716"}

    Returns: 2204

  146. {"6","5","5"}

    Returns: 655

  147. {"9322"}

    Returns: 9322

  148. {"6392","2555","6517"}

    Returns: 15464

  149. {"317","111"}

    Returns: 428

  150. {"83","72"}

    Returns: 155

  151. {"517","919","840"}

    Returns: 2276

  152. {"995","586"}

    Returns: 1581

  153. {"8"}

    Returns: 8

  154. {"294","431","599"}

    Returns: 1603

  155. {"09","48"}

    Returns: 102

  156. {"01","83","04"}

    Returns: 214

  157. {"55","84"}

    Returns: 139

  158. {"584","925","839","839"}

    Returns: 18820

  159. {"62","51","30"}

    Returns: 863

  160. {"571"}

    Returns: 571

  161. {"6750"}

    Returns: 6750

  162. {"97"}

    Returns: 97

  163. {"17"}

    Returns: 17

  164. {"8666","7620","8661"}

    Returns: 24947

  165. {"0403","0343"}

    Returns: 746

  166. {"529","689","216","038"}

    Returns: 18401

  167. {"730","159","385","183"}

    Returns: 11672

  168. {"30","31","95"}

    Returns: 354

  169. {"32"}

    Returns: 32

  170. {"9418","4862"}

    Returns: 14280

  171. {"5","4"}

    Returns: 54

  172. {"8","7"}

    Returns: 87

  173. {"5","2"}

    Returns: 52

  174. {"5372","3704","2834","4080"}

    Returns: 18582

  175. {"59","53","95","06"}

    Returns: 14946

  176. {"0212"}

    Returns: 212

  177. {"4"}

    Returns: 4

  178. {"68","14"}

    Returns: 145

  179. {"9","6","8","9"}

    Returns: 9689

  180. {"2","4","6"}

    Returns: 246

  181. {"20"}

    Returns: 20

  182. {"1485","4766","2590","7677"}

    Returns: 20487

  183. {"4805","9760"}

    Returns: 14565

  184. {"07","64","83","28"}

    Returns: 8120

  185. {"2","5","2"}

    Returns: 252

  186. {"74","84"}

    Returns: 158

  187. {"499"}

    Returns: 499

  188. {"4608","8295"}

    Returns: 12903

  189. {"55"}

    Returns: 55

  190. {"9","4","7"}

    Returns: 947

  191. {"5060","9149"}

    Returns: 14209

  192. {"19","08","40","83"}

    Returns: 10851

  193. {"36","98","48","35"}

    Returns: 10828

  194. {"794","708","850"}

    Returns: 2352

  195. {"7785","2218","2406"}

    Returns: 12409

  196. {"411","028","277","394"}

    Returns: 7176

  197. {"6658","1220"}

    Returns: 7878

  198. {"3"}

    Returns: 3

  199. {"4850","0082","5473"}

    Returns: 10405

  200. {"95","05","43"}

    Returns: 1457

  201. {"3572","9386","8698"}

    Returns: 21656

  202. {"71"}

    Returns: 71

  203. {"14","98"}

    Returns: 112

  204. {"3002"}

    Returns: 3002

  205. {"07","75"}

    Returns: 82

  206. {"9281","3409","6814"}

    Returns: 19504

  207. {"88","96","68","27"}

    Returns: 17649

  208. {"514","984"}

    Returns: 1498

  209. {"0022","0011","0030","1000"}

    Returns: 4240

  210. {"0003","0012","2122","0012"}

    Returns: 3436

  211. {"0023","0013","1231","3311"}

    Returns: 5487

  212. {"0031","0030","1030","2000"}

    Returns: 4360

  213. {"0012","0013","1033","3212"}

    Returns: 4279

  214. {"0033","0033","2003","1230"}

    Returns: 6665

  215. {"0021","0022","1023","2013"}

    Returns: 3484

  216. {"0020","0020","0021","3012"}

    Returns: 3235

  217. {"0110","0102","0001","2201"}

    Returns: 2432

  218. {"0003","1010","0003","1321"}

    Returns: 3264

  219. {"0003","0113","3223","0003"}

    Returns: 3666

  220. {"0102","0102","0022","3122"}

    Returns: 3456

  221. {"0003","1011","1122","1013"}

    Returns: 3437

  222. {"0001","0002","1231","1111"}

    Returns: 2354

  223. {"0003","0210","0021","3300"}

    Returns: 3633

  224. {"0020","0001","1003","1010"}

    Returns: 2151

  225. {"0003","0020","3023","0320"}

    Returns: 3375

  226. {"0032","0032","0100","2120"}

    Returns: 5524

  227. {"8" }

    Returns: 8

  228. {"009", "219", "219" }

    Returns: 1041

  229. {"0009", "1111", "4111", "1111" }

    Returns: 9744

  230. {"0001", "0001", "0001", "1111" }

    Returns: 1222

  231. {"001", "000", "000", "990" }

    Returns: 1099

  232. {"123", "312" }

    Returns: 435

  233. {"0009", "0008", "0009", "0199" }

    Returns: 9918

  234. {"0099", "0090", "0000", "9010" }

    Returns: 18991

  235. {"3003", "2004", "1112", "0340" }

    Returns: 6675

  236. {"1000", "0001", "0000" }

    Returns: 1010

  237. {"9026", "0018", "9978", "0999" }

    Returns: 20021

  238. {"0088", "0000", "0000", "9000" }

    Returns: 16090

  239. {"001", "010", "111", "100" }

    Returns: 1131

  240. {"0009", "0009", "1234", "0000" }

    Returns: 10063

  241. {"001", "000", "001", "110" }

    Returns: 1021

  242. {"0009", "2112", "2114", "2112" }

    Returns: 9875

  243. {"009", "009", "999" }

    Returns: 1098

  244. {"001", "000", "000", "661" }

    Returns: 1067

  245. {"1000", "0099", "0000", "1100" }

    Returns: 2811

  246. {"0001", "0001", "0001" }

    Returns: 111

  247. {"001", "000", "100" }

    Returns: 110

  248. {"0009", "0000", "0000", "0990" }

    Returns: 9099

  249. {"0009", "0000", "0000", "9990" }

    Returns: 10890

  250. {"9308", "4076", "9490", "5561" }

    Returns: 28435

  251. {"0009", "0000", "2000", "2000" }

    Returns: 9400

  252. {"1000", "0099", "0000" }

    Returns: 1180

  253. {"009", "009", "789" }

    Returns: 1077

  254. {"0020", "0001", "0213", "0821" }

    Returns: 2171

  255. {"012", "009" }

    Returns: 39

  256. {"9000", "0001", "0001" }

    Returns: 9011

  257. {"0007", "0001", "0006", "9150" }

    Returns: 9866

  258. {"0001", "0003", "0004", "0220" }

    Returns: 1362

  259. {"0009", "0009", "0009", "0999" }

    Returns: 10098

  260. {"009", "009", "009", "999" }

    Returns: 10098

  261. {"0009", "0009", "0009", "0119" }

    Returns: 10010

  262. {"0020", "0010", "0000", "2000" }

    Returns: 2210

  263. {"0001", "0001", "0110" }

    Returns: 121

  264. {"0001", "0000", "9000", "0000" }

    Returns: 9010

  265. {"001", "001", "999" }

    Returns: 1010

  266. {"0001", "0000", "0000", "9999" }

    Returns: 10099

  267. {"0009", "0000", "0000", "1000" }

    Returns: 9100

  268. {"0001", "0000", "0000", "1000" }

    Returns: 1100


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: