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
If there are multiple solutions, all will be accepted.
If there is no solution, return an empty
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
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.
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.)
1253620
Returns: {2, 9, 155 }
Order of pyramids in the output does not matter. E.g., {9, 155, 2 } is also a valid answer.
4608
Returns: {2, 10, 18, 18 }
1
Returns: {1 }
2
Returns: {1, 1 }
3
Returns: {1, 1, 1 }
4
Returns: {1, 1, 1, 1 }
5
Returns: {2 }
6
Returns: {1, 1, 1, 1, 1, 1 }
7
Returns: {1, 1, 2 }
8
Returns: {1, 1, 1, 2 }
9
Returns: {1, 1, 1, 1, 2 }
10
Returns: {2, 2 }
11
Returns: {1, 2, 2 }
12
Returns: {1, 1, 2, 2 }
13
Returns: {1, 1, 1, 2, 2 }
14
Returns: {3 }
15
Returns: {1, 3 }
16
Returns: {1, 1, 3 }
17
Returns: {1, 1, 1, 3 }
18
Returns: {1, 1, 1, 1, 3 }
19
Returns: {2, 3 }
20
Returns: {1, 2, 3 }
707076112
Returns: {76, 76, 99, 1284 }
875719702
Returns: {8, 18, 18, 124, 1379 }
23
Returns: {1, 1, 1, 1, 2, 3 }
894486
Returns: {1, 77, 89, 114 }
994285073
Returns: {3, 85, 135, 145, 1438 }
26
Returns: {1, 1, 2, 2, 3 }
27
Returns: {1, 1, 1, 2, 2, 3 }
28
Returns: {3, 3 }
963585557
Returns: {1, 1, 25, 52, 1424 }
967565336
Returns: {1, 84, 175, 1425 }
963575832
Returns: {1, 6, 14, 50, 1424 }
884058147
Returns: {9, 68, 102, 138, 1383 }
356605994
Returns: {3, 21, 53, 85, 1022 }
896422958
Returns: {7, 7, 38, 88, 1390 }
878884404
Returns: {5, 73, 134, 142, 1380 }
53
Returns: {1, 2, 2, 3, 3, 3 }
937158197
Returns: {101, 106, 144, 1410 }
969667131
Returns: {1, 2, 25, 44, 1427 }
965554753
Returns: {6, 36, 80, 176, 1424 }
1096
Returns: {1, 8, 10, 11 }
815233096
Returns: {1, 27, 63, 160, 1346 }
726233162
Returns: {9, 36, 107, 146, 1295 }
78
Returns: {1, 2, 3, 3, 3, 4 }
251604558
Returns: {13, 28, 29, 134, 909 }
81
Returns: {1, 1, 2, 2, 3, 5 }
82
Returns: {2, 2, 3, 3, 3, 4 }
83
Returns: {3, 3, 5 }
708100693
Returns: {53, 75, 163, 1284 }
824619612
Returns: {9, 51, 84, 165, 1351 }
140343902
Returns: {27, 58, 113, 748 }
928020067
Returns: {4, 56, 90, 90, 1406 }
108
Returns: {1, 1, 1, 3, 6 }
379434604
Returns: {50, 84, 109, 1043 }
1205873
Returns: {6, 88, 113, 113 }
2767986
Returns: {2, 4, 30, 45, 201 }
882810
Returns: {1, 9, 68, 132 }
124
Returns: {3, 5, 5 }
30758014
Returns: {3, 7, 23, 60, 451 }
10236546
Returns: {1, 4, 12, 57, 312 }
8004226
Returns: {6, 36, 58, 287 }
878380164
Returns: {1, 43, 120, 133, 1380 }
137
Returns: {1, 1, 3, 4, 6 }
657700496
Returns: {29, 81, 106, 120, 1253 }
27155091
Returns: {1, 9, 34, 80, 432 }
435229332
Returns: {11, 53, 71, 106, 1092 }
310381579
Returns: {3, 31, 55, 138, 975 }
158
Returns: {1, 1, 1, 1, 3, 7 }
31089317
Returns: {20, 41, 44, 76, 452 }
968778923
Returns: {1, 61, 89, 137, 1426 }
182447
Returns: {15, 21, 31, 79 }
384224432
Returns: {1, 36, 66, 143, 1047 }
8541880
Returns: {2, 20, 20, 40, 294 }
188
Returns: {1, 2, 6, 6 }
53220362
Returns: {8, 18, 38, 93, 541 }
747857633
Returns: {3, 61, 113, 114, 1308 }
994280172
Returns: {2, 98, 173, 1438 }
421656308
Returns: {4, 43, 115, 123, 1080 }
24315
Returns: {2, 8, 9, 41 }
2304
Returns: {5, 7, 18 }
11522
Returns: {6, 14, 31 }
530456322
Returns: {76, 109, 132, 1166 }
470193414
Returns: {2, 20, 52, 153, 1120 }
15624
Returns: {3, 7, 17, 34 }
746792715
Returns: {6, 28, 108, 156, 1307 }
407431950
Returns: {1, 17, 40, 132, 1068 }
637624083
Returns: {1, 31, 102, 141, 1240 }
277
Returns: {1, 1, 3, 4, 6, 7 }
9598229
Returns: {3, 21, 43, 57, 305 }
144886038
Returns: {2, 16, 71, 110, 756 }
46735128
Returns: {3, 35, 69, 75, 518 }
284
Returns: {1, 1, 1, 1, 7, 7 }
579168037
Returns: {2, 49, 56, 139, 1201 }
644035879
Returns: {4, 15, 48, 165, 1244 }
1322
Returns: {3, 8, 9, 13 }
813
Returns: {1, 1, 1, 7, 9, 10 }
157273902
Returns: {3, 10, 53, 118, 777 }
307
Returns: {1, 1, 1, 2, 3, 9 }
929933621
Returns: {16, 22, 67, 104, 1407 }
973736254
Returns: {6, 13, 20, 38, 1429 }
671965507
Returns: {7, 9, 101, 136, 1262 }
1863
Returns: {1, 3, 3, 13, 14 }
981940039
Returns: {5, 10, 44, 1433 }
4431
Returns: {3, 6, 14, 21 }
797554003
Returns: {1, 96, 120, 139, 1336 }
975806810
Returns: {2, 25, 50, 1430 }
767528292
Returns: {14, 66, 111, 152, 1319 }
979837457
Returns: {42, 51, 180, 1431 }
872
Returns: {1, 2, 2, 6, 10, 10 }
361
Returns: {1, 1, 1, 3, 7, 8 }
362
Returns: {2, 2, 4, 6, 6, 7 }
873
Returns: {2, 3, 8, 12 }
442221
Returns: {2, 65, 101 }
367
Returns: {1, 1, 4, 5, 7, 7 }
98675
Returns: {1, 18, 51, 53 }
524641141
Returns: {92, 101, 102, 1162 }
22556021
Returns: {7, 40, 75, 406 }
15879038
Returns: {1, 25, 41, 67, 361 }
963553664
Returns: {1, 3, 22, 25, 33, 1424 }
483264903
Returns: {56, 66, 87, 1131 }
908
Returns: {1, 1, 1, 3, 10, 11 }
696212365
Returns: {59, 80, 144, 1277 }
204347278
Returns: {64, 93, 102, 848 }
463249
Returns: {9, 73, 75, 82 }
961570194
Returns: {1, 23, 41, 48, 1423 }
403
Returns: {1, 1, 1, 1, 3, 10 }
965571479
Returns: {1, 3, 18, 27, 1425 }
230659992
Returns: {43, 99, 108, 883 }
2196388
Returns: {9, 38, 94, 178 }
380879785
Returns: {2, 36, 47, 143, 1044 }
3671979
Returns: {3, 32, 33, 42, 221 }
143067572
Returns: {53, 73, 94, 753 }
969690042
Returns: {6, 6, 12, 55, 1427 }
963
Returns: {3, 3, 9, 12 }
453
Returns: {3, 3, 7, 9 }
693103558
Returns: {9, 76, 106, 136, 1275 }
458
Returns: {2, 3, 3, 7, 9 }
619633099
Returns: {1, 19, 33, 63, 1229 }
61641679
Returns: {2, 5, 38, 54, 569 }
112601
Returns: {31, 52, 54 }
704235495
Returns: {67, 69, 137, 1282 }
488
Returns: {1, 1, 2, 2, 6, 10 }
998439401
Returns: {92, 96, 165, 1440 }
486381
Returns: {2, 74, 101 }
7159279
Returns: {1, 26, 26, 41, 277 }
502
Returns: {2, 4, 6, 6, 9 }
33788
Returns: {8, 9, 28, 42 }
688455031
Returns: {4, 74, 81, 157, 1272 }
998441544
Returns: {5, 23, 69, 180, 1440 }
9999999
Returns: {1, 8, 13, 39, 310 }
998442429
Returns: {68, 142, 144, 1440 }
2304438
Returns: {7, 8, 133, 165 }
1000000000
Returns: {2, 13, 99, 154, 1441 }
139
Returns: {1, 3, 3, 5, 5 }
8000000
Returns: {2, 4, 29, 59, 287 }
333833523
Returns: {1, 40, 46, 141, 999 }
998441520
Returns: {74, 79, 174, 1440 }
998441574
Returns: {2, 38, 45, 182, 1440 }