Problem Statement
Fox Jiro likes dice. He wants to make his own dice. Each die he wants to make is a cube. Each of the 6 faces has an integer between 1 and N, inclusive. No two faces have same number. Also the following condition must be satisfied: for all faces, the sum of the numbers on opposite faces must be equal and the sum must be greater than or equal to K.
He realized that there are many ways to make such dice. He wants to know how many ways there are. Please help Jiro to make a program that is given two integers N and K and returns the number of different dice satisfying the condition mentioned above.
Two dice are considered the same if you can rotate one to form the other.
Definition
- Class:
- FoxMakingDice
- Method:
- theCount
- Parameters:
- int, int
- Returns:
- long
- Method signature:
- long theCount(int N, int K)
- (be sure your method is public)
Notes
- The answer will always fit in a signed 64-bit integer.
Constraints
- N will be between 1 and 1,000, inclusive.
- K will be between 1 and 2,000, inclusive.
Examples
6
7
Returns: 2
You can make normal dice. There are two ways to arrange the numbers.
5
7
Returns: 0
You cannot make 6 sided dice with 5 numbers.
1000
1
Returns: 20625666000
456
123
Returns: 879075732
913
1014
Returns: 4506149340
1000
2
Returns: 20625666000
1000
3
Returns: 20625666000
1000
4
Returns: 20625666000
1000
5
Returns: 20625666000
1000
6
Returns: 20625666000
1000
7
Returns: 20625666000
1000
8
Returns: 20625665998
1000
9
Returns: 20625665996
1000
10
Returns: 20625665988
1000
499
Returns: 20000303496
1000
500
Returns: 19995219248
1000
501
Returns: 19990135000
1000
999
Returns: 10415878496
1000
1000
Returns: 10374709998
1000
1499
Returns: 651031250
1000
1500
Returns: 645823000
1000
1501
Returns: 640677000
1000
1991
Returns: 40
1000
1992
Returns: 20
1000
1993
Returns: 12
1000
1994
Returns: 4
1000
1995
Returns: 2
1000
1996
Returns: 0
1000
1997
Returns: 0
1000
1998
Returns: 0
1000
1999
Returns: 0
1000
2000
Returns: 0
999
5
Returns: 20543080502
999
6
Returns: 20543080502
999
7
Returns: 20543080502
999
8
Returns: 20543080500
999
9
Returns: 20543080498
999
10
Returns: 20543080490
1
1
Returns: 0
2
1
Returns: 0
3
1
Returns: 0
4
1
Returns: 0
5
1
Returns: 0
6
1
Returns: 2
7
1
Returns: 6
8
1
Returns: 16
9
1
Returns: 32
10
1
Returns: 60
233
379
Returns: 569492
779
1081
Returns: 534747682
293
522
Returns: 163680
901
434
Returns: 13221642600
99
69
Returns: 1620048
631
993
Returns: 53733330
468
517
Returns: 317997680
37
46
Returns: 5460
419
488
Returns: 154523600
31
14
Returns: 13550
888
1644
Returns: 3065920
61
103
Returns: 1080
527
898
Returns: 6010004
539
61
Returns: 1725844952
236
462
Returns: 60
648
409
Returns: 3336677652
478
526
Returns: 352804680
216
157
Returns: 37575372
961
547
Returns: 16678729680
728
15
Returns: 5771701796
595
67
Returns: 2567306280
586
506
Returns: 1753478712
30
54
Returns: 4
90
56
Returns: 1144290
759
610
Returns: 5418434670
168
280
Returns: 95004
195
300
Returns: 652740
396
364
Returns: 324530232
823
399
Returns: 9188555826
205
358
Returns: 70200
85
1302
Returns: 0
603
1491
Returns: 0
775
1600
Returns: 0
342
699
Returns: 0
642
1301
Returns: 0
514
1175
Returns: 0
158
864
Returns: 0
199
783
Returns: 0
5
1189
Returns: 0
833
1687
Returns: 0
378
1555
Returns: 0
509
1929
Returns: 0
158
1982
Returns: 0
433
1013
Returns: 0
898
1875
Returns: 0
999
1
Returns: 20543080502