Statistics

Problem Statement for "CannonballPyramids"

Problem Statement

A square cannonball pyramid of size S is an arrangement of cannonballs into S layers. The bottom layer is a square consisting of S*S cannonballs. The next layer is a square of (S-1)*(S-1) cannonballs, placed into the gaps between the cannonballs forming the bottom layer. And so on: each of the following layers is also a square, and in each layer the side of that square decreases by 1. The top layer consists of a single cannonball.

You have B cannonballs. Use all of them to build at most six perfect square cannonball pyramids. Return a int[] containing the sizes of those pyramids.

If there are multiple solutions, all will be accepted. If there is no solution, return an empty int[] instead.

Definition

Class:
CannonballPyramids
Method:
build
Parameters:
int
Returns:
int[]
Method signature:
int[] build(int B)
(be sure your method is public)

Notes

  • You do not have to minimize the number of pyramids built, any solution with at most six of them is valid.
  • You must use all cannonballs you have.

Constraints

  • B will be between 1 and 10^9, inclusive.

Examples

  1. 280

    Returns: {7, 7 }

    A pyramid of size 7 has 7*7 + 6*6 + ... + 2*2 + 1*1 = 140 cannonballs. You can build two such pyramids.

  2. 6

    Returns: {1, 1, 1, 1, 1, 1 }

    You can build six pyramids of size 1 each. It's a valid solution, even though it does not use the smallest number of pyramids - that would be a pyramid of size 2 and a pyramid of size 1. (Also, it's the laziest solution, you do not have to stack any cannonballs at all, you just let them all lie on the floor.)

  3. 1253620

    Returns: {2, 9, 155 }

    Order of pyramids in the output does not matter. E.g., {9, 155, 2 } is also a valid answer.

  4. 4608

    Returns: {2, 10, 18, 18 }

  5. 1

    Returns: {1 }

  6. 2

    Returns: {1, 1 }

  7. 3

    Returns: {1, 1, 1 }

  8. 4

    Returns: {1, 1, 1, 1 }

  9. 5

    Returns: {2 }

  10. 6

    Returns: {1, 1, 1, 1, 1, 1 }

  11. 7

    Returns: {1, 1, 2 }

  12. 8

    Returns: {1, 1, 1, 2 }

  13. 9

    Returns: {1, 1, 1, 1, 2 }

  14. 10

    Returns: {2, 2 }

  15. 11

    Returns: {1, 2, 2 }

  16. 12

    Returns: {1, 1, 2, 2 }

  17. 13

    Returns: {1, 1, 1, 2, 2 }

  18. 14

    Returns: {3 }

  19. 15

    Returns: {1, 3 }

  20. 16

    Returns: {1, 1, 3 }

  21. 17

    Returns: {1, 1, 1, 3 }

  22. 18

    Returns: {1, 1, 1, 1, 3 }

  23. 19

    Returns: {2, 3 }

  24. 20

    Returns: {1, 2, 3 }

  25. 707076112

    Returns: {76, 76, 99, 1284 }

  26. 875719702

    Returns: {8, 18, 18, 124, 1379 }

  27. 23

    Returns: {1, 1, 1, 1, 2, 3 }

  28. 894486

    Returns: {1, 77, 89, 114 }

  29. 994285073

    Returns: {3, 85, 135, 145, 1438 }

  30. 26

    Returns: {1, 1, 2, 2, 3 }

  31. 27

    Returns: {1, 1, 1, 2, 2, 3 }

  32. 28

    Returns: {3, 3 }

  33. 963585557

    Returns: {1, 1, 25, 52, 1424 }

  34. 967565336

    Returns: {1, 84, 175, 1425 }

  35. 963575832

    Returns: {1, 6, 14, 50, 1424 }

  36. 884058147

    Returns: {9, 68, 102, 138, 1383 }

  37. 356605994

    Returns: {3, 21, 53, 85, 1022 }

  38. 896422958

    Returns: {7, 7, 38, 88, 1390 }

  39. 878884404

    Returns: {5, 73, 134, 142, 1380 }

  40. 53

    Returns: {1, 2, 2, 3, 3, 3 }

  41. 937158197

    Returns: {101, 106, 144, 1410 }

  42. 969667131

    Returns: {1, 2, 25, 44, 1427 }

  43. 965554753

    Returns: {6, 36, 80, 176, 1424 }

  44. 1096

    Returns: {1, 8, 10, 11 }

  45. 815233096

    Returns: {1, 27, 63, 160, 1346 }

  46. 726233162

    Returns: {9, 36, 107, 146, 1295 }

  47. 78

    Returns: {1, 2, 3, 3, 3, 4 }

  48. 251604558

    Returns: {13, 28, 29, 134, 909 }

  49. 81

    Returns: {1, 1, 2, 2, 3, 5 }

  50. 82

    Returns: {2, 2, 3, 3, 3, 4 }

  51. 83

    Returns: {3, 3, 5 }

  52. 708100693

    Returns: {53, 75, 163, 1284 }

  53. 824619612

    Returns: {9, 51, 84, 165, 1351 }

  54. 140343902

    Returns: {27, 58, 113, 748 }

  55. 928020067

    Returns: {4, 56, 90, 90, 1406 }

  56. 108

    Returns: {1, 1, 1, 3, 6 }

  57. 379434604

    Returns: {50, 84, 109, 1043 }

  58. 1205873

    Returns: {6, 88, 113, 113 }

  59. 2767986

    Returns: {2, 4, 30, 45, 201 }

  60. 882810

    Returns: {1, 9, 68, 132 }

  61. 124

    Returns: {3, 5, 5 }

  62. 30758014

    Returns: {3, 7, 23, 60, 451 }

  63. 10236546

    Returns: {1, 4, 12, 57, 312 }

  64. 8004226

    Returns: {6, 36, 58, 287 }

  65. 878380164

    Returns: {1, 43, 120, 133, 1380 }

  66. 137

    Returns: {1, 1, 3, 4, 6 }

  67. 657700496

    Returns: {29, 81, 106, 120, 1253 }

  68. 27155091

    Returns: {1, 9, 34, 80, 432 }

  69. 435229332

    Returns: {11, 53, 71, 106, 1092 }

  70. 310381579

    Returns: {3, 31, 55, 138, 975 }

  71. 158

    Returns: {1, 1, 1, 1, 3, 7 }

  72. 31089317

    Returns: {20, 41, 44, 76, 452 }

  73. 968778923

    Returns: {1, 61, 89, 137, 1426 }

  74. 182447

    Returns: {15, 21, 31, 79 }

  75. 384224432

    Returns: {1, 36, 66, 143, 1047 }

  76. 8541880

    Returns: {2, 20, 20, 40, 294 }

  77. 188

    Returns: {1, 2, 6, 6 }

  78. 53220362

    Returns: {8, 18, 38, 93, 541 }

  79. 747857633

    Returns: {3, 61, 113, 114, 1308 }

  80. 994280172

    Returns: {2, 98, 173, 1438 }

  81. 421656308

    Returns: {4, 43, 115, 123, 1080 }

  82. 24315

    Returns: {2, 8, 9, 41 }

  83. 2304

    Returns: {5, 7, 18 }

  84. 11522

    Returns: {6, 14, 31 }

  85. 530456322

    Returns: {76, 109, 132, 1166 }

  86. 470193414

    Returns: {2, 20, 52, 153, 1120 }

  87. 15624

    Returns: {3, 7, 17, 34 }

  88. 746792715

    Returns: {6, 28, 108, 156, 1307 }

  89. 407431950

    Returns: {1, 17, 40, 132, 1068 }

  90. 637624083

    Returns: {1, 31, 102, 141, 1240 }

  91. 277

    Returns: {1, 1, 3, 4, 6, 7 }

  92. 9598229

    Returns: {3, 21, 43, 57, 305 }

  93. 144886038

    Returns: {2, 16, 71, 110, 756 }

  94. 46735128

    Returns: {3, 35, 69, 75, 518 }

  95. 284

    Returns: {1, 1, 1, 1, 7, 7 }

  96. 579168037

    Returns: {2, 49, 56, 139, 1201 }

  97. 644035879

    Returns: {4, 15, 48, 165, 1244 }

  98. 1322

    Returns: {3, 8, 9, 13 }

  99. 813

    Returns: {1, 1, 1, 7, 9, 10 }

  100. 157273902

    Returns: {3, 10, 53, 118, 777 }

  101. 307

    Returns: {1, 1, 1, 2, 3, 9 }

  102. 929933621

    Returns: {16, 22, 67, 104, 1407 }

  103. 973736254

    Returns: {6, 13, 20, 38, 1429 }

  104. 671965507

    Returns: {7, 9, 101, 136, 1262 }

  105. 1863

    Returns: {1, 3, 3, 13, 14 }

  106. 981940039

    Returns: {5, 10, 44, 1433 }

  107. 4431

    Returns: {3, 6, 14, 21 }

  108. 797554003

    Returns: {1, 96, 120, 139, 1336 }

  109. 975806810

    Returns: {2, 25, 50, 1430 }

  110. 767528292

    Returns: {14, 66, 111, 152, 1319 }

  111. 979837457

    Returns: {42, 51, 180, 1431 }

  112. 872

    Returns: {1, 2, 2, 6, 10, 10 }

  113. 361

    Returns: {1, 1, 1, 3, 7, 8 }

  114. 362

    Returns: {2, 2, 4, 6, 6, 7 }

  115. 873

    Returns: {2, 3, 8, 12 }

  116. 442221

    Returns: {2, 65, 101 }

  117. 367

    Returns: {1, 1, 4, 5, 7, 7 }

  118. 98675

    Returns: {1, 18, 51, 53 }

  119. 524641141

    Returns: {92, 101, 102, 1162 }

  120. 22556021

    Returns: {7, 40, 75, 406 }

  121. 15879038

    Returns: {1, 25, 41, 67, 361 }

  122. 963553664

    Returns: {1, 3, 22, 25, 33, 1424 }

  123. 483264903

    Returns: {56, 66, 87, 1131 }

  124. 908

    Returns: {1, 1, 1, 3, 10, 11 }

  125. 696212365

    Returns: {59, 80, 144, 1277 }

  126. 204347278

    Returns: {64, 93, 102, 848 }

  127. 463249

    Returns: {9, 73, 75, 82 }

  128. 961570194

    Returns: {1, 23, 41, 48, 1423 }

  129. 403

    Returns: {1, 1, 1, 1, 3, 10 }

  130. 965571479

    Returns: {1, 3, 18, 27, 1425 }

  131. 230659992

    Returns: {43, 99, 108, 883 }

  132. 2196388

    Returns: {9, 38, 94, 178 }

  133. 380879785

    Returns: {2, 36, 47, 143, 1044 }

  134. 3671979

    Returns: {3, 32, 33, 42, 221 }

  135. 143067572

    Returns: {53, 73, 94, 753 }

  136. 969690042

    Returns: {6, 6, 12, 55, 1427 }

  137. 963

    Returns: {3, 3, 9, 12 }

  138. 453

    Returns: {3, 3, 7, 9 }

  139. 693103558

    Returns: {9, 76, 106, 136, 1275 }

  140. 458

    Returns: {2, 3, 3, 7, 9 }

  141. 619633099

    Returns: {1, 19, 33, 63, 1229 }

  142. 61641679

    Returns: {2, 5, 38, 54, 569 }

  143. 112601

    Returns: {31, 52, 54 }

  144. 704235495

    Returns: {67, 69, 137, 1282 }

  145. 488

    Returns: {1, 1, 2, 2, 6, 10 }

  146. 998439401

    Returns: {92, 96, 165, 1440 }

  147. 486381

    Returns: {2, 74, 101 }

  148. 7159279

    Returns: {1, 26, 26, 41, 277 }

  149. 502

    Returns: {2, 4, 6, 6, 9 }

  150. 33788

    Returns: {8, 9, 28, 42 }

  151. 688455031

    Returns: {4, 74, 81, 157, 1272 }

  152. 998441544

    Returns: {5, 23, 69, 180, 1440 }

  153. 9999999

    Returns: {1, 8, 13, 39, 310 }

  154. 998442429

    Returns: {68, 142, 144, 1440 }

  155. 2304438

    Returns: {7, 8, 133, 165 }

  156. 1000000000

    Returns: {2, 13, 99, 154, 1441 }

  157. 139

    Returns: {1, 3, 3, 5, 5 }

  158. 8000000

    Returns: {2, 4, 29, 59, 287 }

  159. 333833523

    Returns: {1, 40, 46, 141, 999 }

  160. 998441520

    Returns: {74, 79, 174, 1440 }

  161. 998441574

    Returns: {2, 38, 45, 182, 1440 }


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: