Problem Statement
- The top-most row must contain at least one cell of each of the k colors.
- Every pair of cells of the same color must be connected. Two cells are connected if there is a path between them that consists of cells that share a common edge and are of the same color.
Definition
- Class:
- RowOfColors
- Method:
- countWays
- Parameters:
- int, int, int
- Returns:
- int
- Method signature:
- int countWays(int w, int h, int k)
- (be sure your method is public)
Constraints
- w, h and k will each be between 1 and 300, inclusive.
Examples
4
1
2
Returns: 6
There is only one row in the grid. The 6 different ways to color the grid with 2 different colors such that the cells of each color are connected are: "AAAB", "AABB", "ABBB", "BBBA", "BBAA" and "BAAA".
4
3
2
Returns: 12
This time "ABAA", "AABA", "ABBA", "BABB", "BBAB" and "BAAB" are new valid ways to color the top-most row in the grid. The following are some of the grid colorings that allow those top rows: ABAA AABA ABBA BABB BBAB BAAB ABBA AAAA ABAA BABB BAAB BBBB AAAA AAAA AAAA BBBB BBBB BBBB
4
4
10
Returns: 0
It is impossible to use each of the 10 different colors on the 4 cells in the top row.
14
28
14
Returns: 178290591
100
20
25
Returns: 148201539
4
4
3
Returns: 36
AABC ABAC ABCA ABCC ABCB ABBC
300
300
300
Returns: 419467694
300
300
150
Returns: 784197416
1
1
1
Returns: 1
2
300
2
Returns: 2
300
10
2
Returns: 89700
300
10
3
Returns: 996224679
150
74
75
Returns: 631942245
150
10
75
Returns: 756243307
300
1
147
Returns: 745868737
100
7
24
Returns: 7310839
240
289
262
Returns: 0
50
35
44
Returns: 732596863
33
48
111
Returns: 0
64
12
212
Returns: 0
23
44
279
Returns: 0
69
84
21
Returns: 349451876
44
101
108
Returns: 0
12
149
206
Returns: 0
75
111
258
Returns: 0
58
190
10
Returns: 251750298
23
181
115
Returns: 0
27
153
209
Returns: 0
56
224
299
Returns: 0
69
281
6
Returns: 666592259
42
254
112
Returns: 0
42
267
195
Returns: 0
49
270
293
Returns: 0
76
2
61
Returns: 392856899
147
71
104
Returns: 667244272
136
4
179
Returns: 0
111
28
272
Returns: 0
121
87
32
Returns: 752328292
128
79
97
Returns: 436881882
97
124
198
Returns: 0
142
103
296
Returns: 0
126
203
35
Returns: 168905624
116
176
94
Returns: 787125160
91
181
185
Returns: 0
137
165
278
Returns: 0
116
231
38
Returns: 242502939
144
271
117
Returns: 512482209
104
237
170
Returns: 0
135
281
283
Returns: 0
198
41
46
Returns: 309050308
157
16
134
Returns: 316099124
203
70
170
Returns: 180783538
200
45
257
Returns: 0
185
128
61
Returns: 266243489
175
83
106
Returns: 467212189
218
135
157
Returns: 214012640
165
127
241
Returns: 0
215
165
71
Returns: 694950986
151
223
118
Returns: 253059109
221
183
220
Returns: 282811922
174
221
276
Returns: 0
157
255
14
Returns: 269282528
205
259
104
Returns: 463350099
221
292
194
Returns: 836143583
182
236
248
Returns: 0
228
43
73
Returns: 881055729
255
58
139
Returns: 210659146
296
4
197
Returns: 47260663
263
5
237
Returns: 157284222
290
116
20
Returns: 519880426
239
121
150
Returns: 172734297
268
116
208
Returns: 663458666
292
108
236
Returns: 576228657
270
184
45
Returns: 797104041
283
152
120
Returns: 273810281
283
223
224
Returns: 990043966
265
188
244
Returns: 693927072
293
263
64
Returns: 621495630
297
292
94
Returns: 691043977
254
232
225
Returns: 461509803
287
263
282
Returns: 630465772
218
219
258
Returns: 0
152
156
273
Returns: 0
289
274
287
Returns: 704322209
235
197
249
Returns: 0
207
191
195
Returns: 612845869
283
188
292
Returns: 0
285
160
197
Returns: 275490213
177
222
283
Returns: 0
217
213
290
Returns: 0
256
244
255
Returns: 962427540
286
240
285
Returns: 959444329
150
188
156
Returns: 0
246
172
206
Returns: 575248215
265
279
239
Returns: 877501162
166
170
206
Returns: 0
293
172
213
Returns: 47264865
241
175
226
Returns: 364939486
279
231
189
Returns: 933587926
186
180
217
Returns: 0
176
199
249
Returns: 0
188
277
230
Returns: 0
254
296
175
Returns: 842249849
228
221
187
Returns: 595945492
265
230
260
Returns: 903420670
288
266
230
Returns: 159666371
216
183
274
Returns: 0
224
204
295
Returns: 0
258
158
238
Returns: 639378104
293
235
262
Returns: 447849095
152
224
190
Returns: 0
300
100
200
Returns: 95648989
300
100
150
Returns: 117957987
298
276
299
Returns: 0