Problem Statement
Your task is to help John by counting the number of possible sets of escaped cows. This number may be very big, so return it modulo 1,000,000,007.
Definition
- Class:
- TheCowDivOne
- Method:
- find
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int find(int N, int K)
- (be sure your method is public)
Constraints
- N will be between 1 and 1,000,000,000, inclusive.
- K will be between 1 and 1,000, inclusive.
- K will be less than or equal to N.
Examples
7
4
Returns: 5
7 cows are numbered 0 to 6 and 4 of them run away. Possible sets of escaped cows are {0, 1, 2, 4}, {0, 3, 5, 6}, {1, 2, 5, 6}, {1, 3, 4, 6}, {2, 3, 4, 5}.
1
1
Returns: 1
58
4
Returns: 7322
1000
47
Returns: 219736903
1000000000
1000
Returns: 666683069
2
1
Returns: 1
2
2
Returns: 0
3
1
Returns: 1
3
2
Returns: 1
3
3
Returns: 1
4
1
Returns: 1
4
2
Returns: 1
4
3
Returns: 1
4
4
Returns: 0
5
1
Returns: 1
5
2
Returns: 2
5
3
Returns: 2
5
4
Returns: 1
5
5
Returns: 1
1000
1000
Returns: 0
960
960
Returns: 0
63390173
309
Returns: 76652763
354906248
391
Returns: 921758847
693687879
64
Returns: 957863722
41610290
158
Returns: 253930380
450967320
884
Returns: 32765373
677453283
407
Returns: 404506710
78220433
389
Returns: 693266974
875638899
290
Returns: 646894459
584068127
240
Returns: 484851304
889464111
931
Returns: 654109757
1000000000
1
Returns: 1
1000000000
2
Returns: 499999999
1000000000
3
Returns: 12
1000000000
4
Returns: 374999971
1000000000
5
Returns: 600000071
999999360
960
Returns: 10740579
999999840
840
Returns: 647186760
999999360
720
Returns: 164606389
301481159
279
Returns: 170386145
690424208
510
Returns: 435670270
196504020
360
Returns: 664272542
106015896
152
Returns: 869719808
480359630
445
Returns: 49716086
364122858
798
Returns: 967782225
515289187
973
Returns: 691924672
446690368
896
Returns: 600294384
410112630
360
Returns: 108988924
347763120
10
Returns: 677969261
171220380
660
Returns: 418570244
369355080
360
Returns: 441426964
9259740
360
Returns: 97658488
912128400
720
Returns: 831685549
313071000
300
Returns: 699114382
943870000
1000
Returns: 378465649
735134400
1000
Returns: 312974202
698377680
1000
Returns: 199366479
551350800
1000
Returns: 612029886
367567200
1000
Returns: 259163372
735134400
840
Returns: 543959440
999999999
999
Returns: 230828207