Problem Statement
Consider a hexagonal grid with 6 sides, with the side lengths given by the int[] s (in the clockwise order), as shown in the following picture:
Count the number of ways to color each cell with one of two colors, black or white, such that every non-border black cell has exactly a black neighbors, and every non-border white cell has exactly b white neighbors (a cell is called non-border if and only if it has exactly 6 neighbors in the grid).
Definition
- Class:
- BeautifulHexagonalTilings
- Method:
- howMany
- Parameters:
- int[], int, int
- Returns:
- int
- Method signature:
- int howMany(int[] s, int a, int b)
- (be sure your method is public)
Constraints
- s will contain exactly 6 elements.
- Each element of s will be between 2 and 6, inclusive.
- a and b will each be between 0 and 6, inclusive.
- s will define a valid hexagonal grid.
- The answer will always fit into an int.
Examples
{2,2,2,2,2,2}
6
6
Returns: 2
Either all white or all black.
{6,6,6,6,6,6}
6
6
Returns: 2
The field is bigger, but still all white or all black.
{2,2,2,2,2,2}
2
2
Returns: 30
{4,4,3,5,3,4}
4
1
Returns: 213
The grid from the picture.
{6,6,6,6,6,6}
2
2
Returns: 7926
{5,6,6,5,6,6}
2
2
Returns: 5526
{2,2,2,2,2,2}
0
0
Returns: 2
{4,2,5,2,4,3}
0
0
Returns: 0
{2,2,2,2,2,2}
1
0
Returns: 7
{2,2,3,2,2,3}
1
0
Returns: 1
{5,2,4,4,3,3}
0
1
Returns: 0
{2,2,2,2,2,2}
2
0
Returns: 16
{2,3,2,3,2,3}
2
0
Returns: 4
{4,4,2,6,2,4}
0
2
Returns: 0
{2,2,2,2,2,2}
3
0
Returns: 21
{6,2,5,3,5,2}
3
0
Returns: 20
{3,5,2,5,3,4}
3
0
Returns: 11
{2,2,2,2,2,2}
0
4
Returns: 16
{6,6,6,6,6,6}
0
4
Returns: 552
{3,3,3,4,2,4}
0
4
Returns: 66
{2,2,2,2,2,2}
5
0
Returns: 7
{2,3,4,2,3,4}
0
5
Returns: 24
{4,5,5,3,6,4}
5
0
Returns: 16
{2,2,2,2,2,2}
0
6
Returns: 2
{3,6,5,3,6,5}
0
6
Returns: 1
{4,5,4,4,5,4}
6
0
Returns: 1
{2,2,2,2,2,2}
1
1
Returns: 12
{2,2,3,2,2,3}
1
1
Returns: 6
{3,5,6,3,5,6}
1
1
Returns: 0
{2,2,2,2,2,2}
2
1
Returns: 21
{3,2,5,3,2,5}
2
1
Returns: 1
{6,2,4,5,3,3}
2
1
Returns: 0
{2,2,2,2,2,2}
3
1
Returns: 26
{5,5,6,5,5,6}
3
1
Returns: 432
{5,2,3,4,3,2}
3
1
Returns: 248
{2,2,2,2,2,2}
1
4
Returns: 21
{5,3,2,6,2,3}
1
4
Returns: 443
{5,4,5,3,6,3}
4
1
Returns: 172
{2,2,2,2,2,2}
5
1
Returns: 12
{6,3,2,6,3,2}
5
1
Returns: 25
{6,3,6,4,5,4}
1
5
Returns: 0
{2,2,2,2,2,2}
6
1
Returns: 7
{3,4,3,2,5,2}
1
6
Returns: 1
{3,4,5,3,4,5}
6
1
Returns: 1
{2,2,2,2,2,2}
2
2
Returns: 30
{6,4,3,6,4,3}
2
2
Returns: 1592
{2,6,5,3,5,6}
2
2
Returns: 2214
{2,2,2,2,2,2}
2
3
Returns: 35
{3,6,5,3,6,5}
2
3
Returns: 637
{3,6,5,3,6,5}
3
2
Returns: 637
{2,2,2,2,2,2}
2
4
Returns: 30
{4,5,3,6,3,5}
2
4
Returns: 40
{3,5,4,5,3,6}
2
4
Returns: 40
{2,2,2,2,2,2}
2
5
Returns: 21
{5,3,2,5,3,2}
2
5
Returns: 18
{6,5,6,5,6,5}
5
2
Returns: 0
{2,2,2,2,2,2}
6
2
Returns: 16
{6,4,6,4,6,4}
6
2
Returns: 1
{2,5,3,5,2,6}
2
6
Returns: 1
{2,2,2,2,2,2}
3
3
Returns: 40
{5,2,2,5,2,2}
3
3
Returns: 672
{5,2,4,3,4,2}
3
3
Returns: 240
{2,2,2,2,2,2}
3
4
Returns: 35
{2,2,6,2,2,6}
3
4
Returns: 717
{2,4,3,4,2,5}
4
3
Returns: 77
{2,2,2,2,2,2}
3
5
Returns: 26
{3,2,2,3,2,2}
3
5
Returns: 41
{3,5,2,5,3,4}
3
5
Returns: 0
{2,2,2,2,2,2}
6
3
Returns: 21
{6,6,3,6,6,3}
3
6
Returns: 1
{6,5,6,6,5,6}
3
6
Returns: 1
{2,2,2,2,2,2}
4
4
Returns: 30
{3,3,2,4,2,3}
4
4
Returns: 34
{5,5,5,6,4,6}
4
4
Returns: 12
{2,2,2,2,2,2}
4
5
Returns: 21
{2,3,3,2,3,3}
4
5
Returns: 33
{6,2,4,6,2,4}
4
5
Returns: 0
{2,2,2,2,2,2}
4
6
Returns: 16
{3,3,4,4,2,5}
4
6
Returns: 1
{3,5,5,3,5,5}
4
6
Returns: 1
{2,2,2,2,2,2}
5
5
Returns: 12
{3,5,2,3,5,2}
5
5
Returns: 28
{3,2,4,2,3,3}
5
5
Returns: 20
{2,2,2,2,2,2}
6
5
Returns: 7
{2,6,3,5,3,6}
6
5
Returns: 1
{2,5,3,3,4,4}
5
6
Returns: 1
{2,2,2,2,2,2}
6
6
Returns: 2
{4,4,6,3,5,5}
6
6
Returns: 2
{5,4,6,3,6,4}
6
6
Returns: 2
{6,5,5,6,5,5}
2
2
Returns: 3638
{4,4,5,3,5,4}
2
2
Returns: 898
{3,5,3,5,3,5}
2
2
Returns: 770
{6,6,5,6,6,5}
2
2
Returns: 5526
{6,5,5,5,6,4}
2
2
Returns: 3046
{5,5,4,4,6,3}
2
2
Returns: 1540
{3,3,5,4,2,6}
2
2
Returns: 954
{6,5,5,5,6,4}
2
2
Returns: 3046
{4,5,5,4,5,5}
2
2
Returns: 1598
{3,5,4,4,4,5}
2
2
Returns: 898
{6,6,6,6,6,6}
2
2
Returns: 7926
{6,6,3,6,6,3}
2
2
Returns: 3862
{4,5,3,5,4,4}
2
2
Returns: 898
{4,6,4,4,6,4}
2
2
Returns: 1938
{4,5,6,4,5,6}
2
2
Returns: 2724
{6,5,6,5,6,5}
2
2
Returns: 4322
{4,4,4,4,4,4}
2
2
Returns: 654
{4,4,4,4,4,4}
2
2
Returns: 654
{5,3,3,5,3,3}
2
2
Returns: 594
{5,4,3,6,3,4}
2
2
Returns: 1118
{2, 2, 2, 2, 2, 2 }
2
2
Returns: 30
{5, 4, 2, 5, 4, 2 }
2
2
Returns: 736
{6, 6, 6, 6, 6, 6 }
2
2
Returns: 7926