Problem Statement

Two K-shrooks attack each other if one of them can reach the other shrook's square in one move. You are given a board with H rows and W columns. Find out the number of ways to place an arbitrary positive amount of K-shrooks on this board so that no two of them attack each other. Return this number modulo 100003.
Definition
- Class:
- ShrooksOnTheBoard
- Method:
- count
- Parameters:
- int, int, int
- Returns:
- int
- Method signature:
- int count(int K, int H, int W)
- (be sure your method is public)
Constraints
- K will be between 1 and 1,000,000,000, inclusive.
- H will be between 1 and 1,000,000,000, inclusive.
- W will be between 1 and 1,000,000,000, inclusive.
Examples
1
1
3
Returns: 4
The possible placements are "S..", ".S.", "..S" and "S.S".
1
2
2
Returns: 8
There can not be more than 1 shrook in a row.
3
4
9
Returns: 56963
34
83489
98433
Returns: 98118
random medium test
65
93284923
819847362
Returns: 94567
random big test for MatrixMul
212
187342874
992837462
Returns: 92273
random big test for DP
1
1
1
Returns: 1
1000000000
1
1
Returns: 1
1000000000
2
2
Returns: 8
1
1000000000
1
Returns: 89147
1
1
1000000000
Returns: 89458
2
1
1000000000
Returns: 54934
70
545
983454345
Returns: 98745
140
342
999999999
Returns: 76639
5000
1000000000
1000000000
Returns: 3976
2000
49823838
999999997
Returns: 19060
1500
2391382
999999980
Returns: 99763
1000
39232848
999999384
Returns: 50828
3
6
10
Returns: 17034
10
10
10
Returns: 46502
1
6
7
Returns: 58074
10
10
2
Returns: 59048
5
1
3
Returns: 3
8
8
4
Returns: 90615
2
6
6
Returns: 26664
2
2
7
Returns: 360
5
9
1
Returns: 511
7
9
3
Returns: 62137
8
5
391
Returns: 66499
109
45811459
997358662
Returns: 50340
9483852
999999951
7467
Returns: 39881
7301070
3
1870145
Returns: 3250
3
999997154
6
Returns: 62485
5959
999789297
828846743
Returns: 99532
823861815
999990198
999999903
Returns: 36225
95
5644065
5
Returns: 15850
1
6
991629016
Returns: 38175
1
990974349
8
Returns: 57113
43007
175986251
30775288
Returns: 34846
6473
994511433
808
Returns: 10135
1
999999992
688565
Returns: 5038
169
72
815607
Returns: 22072
6423855
580416
999372813
Returns: 3291
39582715
67
7
Returns: 96128
23694087
999999998
644172
Returns: 814
88339
7638368
369516
Returns: 33757
1000000000
999999993
88
Returns: 36179
999999998
1000000000
1000000000
Returns: 97890
1
5
999999910
Returns: 46141
2
999999996
999999324
Returns: 86115
3
999999996
999604058
Returns: 17610
4
6
999999199
Returns: 75142
5
55181802
999999622
Returns: 336
6
60919124
999999232
Returns: 46816
7
999999512
999999080
Returns: 12844
8
104
999999961
Returns: 17052
9
999911122
999510962
Returns: 49634
10
999999973
999999886
Returns: 93839
24
98
999999957
Returns: 37015
79
5067
536870911
Returns: 48191
56
999999504
999640520
Returns: 51042
13
996830971
536870911
Returns: 97418
74
999291196
999999926
Returns: 2790
20
851063055
536870911
Returns: 22862
78
999206276
999999114
Returns: 71029
54
863573
536870911
Returns: 48608
45
999998323
999999993
Returns: 18498
14
999190741
536870911
Returns: 87126
70
999926779
999979761
Returns: 3098
36
996063264
536870911
Returns: 47467
31
16693
999421426
Returns: 11632
57
906502232
536870911
Returns: 71781
68
999999994
999994613
Returns: 46988
91
999999495
536870911
Returns: 42265
45
996415526
999972673
Returns: 71247
74
14
536870911
Returns: 95826
55
178006
999994463
Returns: 75358
73
999996294
536870911
Returns: 21914
122
87363366
999955313
Returns: 40542
104
999456730
536870911
Returns: 74426
106
474881719
999937976
Returns: 73674
168
87065
536870911
Returns: 78794
104
161
999985356
Returns: 73623
115
44634
536870911
Returns: 80331
132
999999769
999999981
Returns: 36498
141
999999930
536870911
Returns: 10811
154
97
999999953
Returns: 74522
183
999999997
536870911
Returns: 92918
147
9248029
999999995
Returns: 23475
121
821909817
536870911
Returns: 62322
150
605651454
999730451
Returns: 98357
171
450
536870911
Returns: 18481
190
3615
999999999
Returns: 74972
119
3669763
536870911
Returns: 10871
108
734366
999999707
Returns: 46783
174
74
536870911
Returns: 9634
117
583984
999999995
Returns: 64971
119
23303
536870911
Returns: 88006
195
256616
999999969
Returns: 68799
185
6287
536870911
Returns: 33923
154
668877
999999958
Returns: 86828
144
96566419
536870911
Returns: 74639
141
946310181
999046268
Returns: 55331
133
7770
536870911
Returns: 22532
190
999142361
999999998
Returns: 63480
172
996329878
536870911
Returns: 17817
160
988663414
999861792
Returns: 36860
108
850
536870911
Returns: 69527
139
6100
999992067
Returns: 46563
194
999999913
536870911
Returns: 37906
126
67982555
999999994
Returns: 82411
170
183905
536870911
Returns: 1450
153
999391855
999999992
Returns: 46539
191
11358
536870911
Returns: 42950
130
999992464
999993485
Returns: 71105
166
999995933
536870911
Returns: 29709
163
850
999999996
Returns: 58285
151
999999994
536870911
Returns: 43662
234
597370
999819915
Returns: 12952
205
651
536870911
Returns: 47877
251
995814999
999985788
Returns: 74864
224
366301249
536870911
Returns: 95550
288
999999499
999986880
Returns: 83333
241
1
536870911
Returns: 66755
234
1000000000
999999918
Returns: 7447
294
563704
536870911
Returns: 30823
259
914953220
999999926
Returns: 46898
203
48159
536870911
Returns: 49443
282
999999904
999953884
Returns: 18931
249
30649220
536870911
Returns: 88733
240
8
999996087
Returns: 28326
233
999949920
536870911
Returns: 64588
238
999219541
999993271
Returns: 42902
282
90
536870911
Returns: 70427
214
13163806
999999994
Returns: 85981
225
63820
536870911
Returns: 78762
210
999992590
999999994
Returns: 16471
242
999999590
536870911
Returns: 13060
326
6431
999999501
Returns: 17236
336
996446976
999994367
Returns: 22418
413
771
999737218
Returns: 1060
422
813996332
999990180
Returns: 48404
321
629
999995449
Returns: 3969
448
479484
999191570
Returns: 44557
485
8
999950557
Returns: 81175
303
895315
999992967
Returns: 48190
443
64
1000000000
Returns: 39952
442
780
999991763
Returns: 66610
861
374987345
999509357
Returns: 61453
930
519045
999999992
Returns: 61993
1398
999907737
999999999
Returns: 52835
857
997359090
999923302
Returns: 52372
841
999923238
999997480
Returns: 33558
884
999204245
999901442
Returns: 40836
567
993883212
999933539
Returns: 57350
563
997853007
999999996
Returns: 29191
561
38160
999931506
Returns: 41138
535
993904568
999997334
Returns: 38220
61962
999992872
999999295
Returns: 59374
9582
45644104
999999623
Returns: 28427
5778
999325857
1000000000
Returns: 76117
8276
5
999999934
Returns: 11654
46757
339404
999999992
Returns: 93034
4630
999999995
999043686
Returns: 77497
7913
169866
999991554
Returns: 77575
26250
83
999447596
Returns: 11512
4654
40271895
999999957
Returns: 50506
93404
999995710
999990853
Returns: 52567
411993000
90873
999999996
Returns: 63203
478432
902337243
999622961
Returns: 63396
999990049
9143
999886942
Returns: 85678
639700194
999415087
999970171
Returns: 86646
959717274
6000
999943759
Returns: 37169
999996969
9928
999999457
Returns: 64357
999991464
155
999999361
Returns: 71509
603861417
6
999999997
Returns: 57252
105309206
992330207
999999999
Returns: 93058
999999996
999999790
999999862
Returns: 65165