Problem Statement
NOTE: This problem statement contains images that may not display properly if viewed outside of the applet.
Fox Ciel has R red cubes, G green cubes, and B blue cubes. The side length of each cube is 1. She is going to put all her cubes on a NxN board which is divided into 1x1 cells. Cubes must be placed within the cells, and a cell can contain a pile of multiple cubes.
The cubes that are placed on the board can be regarded as a "building". A "building" is called beautiful if and only if all visible cubes are the same color when viewing the building from the south, facing directly north.
In following figure, for example, left building is beautiful while right one is not.
Return the number of beautiful buildings she can make, modulo 1,000,000,007.
Definition
- Class:
- CubeBuilding
- Method:
- getCount
- Parameters:
- int, int, int, int
- Returns:
- int
- Method signature:
- int getCount(int R, int G, int B, int N)
- (be sure your method is public)
Constraints
- R, G and B will each be between 0 and 25, inclusive.
- The sum of R,G and B will be greater than or equal to 1.
- N will be between 1 and 25, inclusive.
Examples
1
0
1
2
Returns: 4
There are 4 possible beautiful buildings.
1
1
2
1
Returns: 0
In this case, it is impossible to make beautiful buildings.
2
2
1
3
Returns: 162
0
0
10
12
Returns: 372185933
1
1
1
2
Returns: 0
13
25
13
2
Returns: 0
2
3
9
16
Returns: 999984100
2
10
12
24
Returns: 999976703
13
21
22
25
Returns: 999680373
0
1
0
1
Returns: 1
9
0
0
1
Returns: 1
0
25
0
1
Returns: 1
0
20
1
1
Returns: 0
16
25
0
1
Returns: 0
13
14
24
1
Returns: 0
22
2
7
1
Returns: 0
1
0
0
2
Returns: 4
0
9
0
2
Returns: 220
0
0
25
2
Returns: 3276
1
4
0
2
Returns: 48
12
0
9
2
Returns: 560
25
0
16
2
Returns: 706860
18
17
21
2
Returns: 0
2
5
7
2
Returns: 168
25
13
17
2
Returns: 0
5
0
0
19
Returns: 521291459
0
0
10
17
Returns: 102948717
0
0
15
21
Returns: 746365076
0
0
20
11
Returns: 696363056
25
0
0
24
Returns: 850463507
0
3
5
3
Returns: 9099
6
0
10
22
Returns: 308903699
0
9
15
15
Returns: 149017039
12
20
0
9
Returns: 180941864
25
0
15
8
Returns: 758225097
0
12
9
8
Returns: 64096855
25
17
0
11
Returns: 856239698
14
11
0
6
Returns: 129433612
3
2
5
21
Returns: 214993782
6
10
4
5
Returns: 795816365
9
6
15
19
Returns: 676249657
8
12
20
7
Returns: 262615665
25
10
15
10
Returns: 523792017
2
20
8
16
Returns: 265733132
18
1
4
3
Returns: 19127103
21
24
6
10
Returns: 569373363
25
25
25
1
Returns: 0
25
25
25
2
Returns: 0
25
25
25
3
Returns: 647180287
25
25
25
4
Returns: 741812390
25
25
25
5
Returns: 422215836
25
25
25
5
Returns: 422215836
25
25
25
9
Returns: 66404265
25
25
25
13
Returns: 453982504
25
25
25
17
Returns: 891378691
25
25
25
21
Returns: 437812739
25
25
25
22
Returns: 178906838
25
25
25
23
Returns: 247873098
25
25
25
24
Returns: 902932478
25
25
25
25
Returns: 175777317
25
25
24
1
Returns: 0
25
25
24
2
Returns: 0
25
25
24
3
Returns: 242167453
25
25
24
4
Returns: 663706246
25
25
24
5
Returns: 803520573
25
24
25
5
Returns: 803520573
24
25
25
9
Returns: 998396720
25
24
25
13
Returns: 629339951
25
24
25
17
Returns: 949985298
25
24
25
21
Returns: 164357043
25
24
25
22
Returns: 11545649
25
24
25
23
Returns: 73533041
25
24
25
24
Returns: 548915463
25
25
24
25
Returns: 170126300
24
23
22
25
Returns: 995570555
25
24
23
25
Returns: 721888904
10
13
25
24
Returns: 47011342