Problem Statement
Alien Fred wants to destroy the Earth. But before he does that, he wants to solve the following problem.
He has the set {1, 2, 3, ..., 2N}. He wants to split this set into two new sets A and B. The following conditions must all be satisfied:
- Each element of the original set must belong to exactly one of the sets A and B.
- The two new sets must have the same size. (I.e., each of them must contain exactly N numbers.)
- For each i from 1 to N, inclusive: Let A[i] be the i-th smallest element of A, and let B[i] be the i-th smallest element of B. The difference |A[i] - B[i]| must be greater than or equal to K.
You are given the two
Definition
- Class:
- AlienAndSetDiv1
- Method:
- getNumber
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int getNumber(int N, int K)
- (be sure your method is public)
Constraints
- N will be between 1 and 50, inclusive.
- K will be between 1 and 10, inclusive.
Examples
2
2
Returns: 2
The initial set is {1, 2, 3, 4}. The following 6 pairs of subsets are possible in this case: A={1, 2} and B={3, 4} A={1, 3} and B={2, 4} A={1, 4} and B={2, 3} A={2, 3} and B={1, 4} A={2, 4} and B={1, 3} A={3, 4} and B={1, 2} The first option and the last option are both valid. The other 4 options are invalid. Note that order of the two sets matters: the option A={1,2} and B={3,4} differs from the option A={3,4} and B={1,2}.
3
1
Returns: 20
4
2
Returns: 14
10
7
Returns: 40
10
1
Returns: 184756
10
2
Returns: 21900
10
3
Returns: 5854
10
4
Returns: 1750
10
5
Returns: 506
10
6
Returns: 140
10
7
Returns: 40
10
8
Returns: 12
10
9
Returns: 4
50
10
Returns: 660636822
50
9
Returns: 571267552
50
8
Returns: 895535537
50
7
Returns: 676776543
50
6
Returns: 521968290
50
5
Returns: 837255429
50
4
Returns: 793289036
50
3
Returns: 572592210
50
2
Returns: 796418490
50
1
Returns: 538992043
47
7
Returns: 748246841
44
3
Returns: 844194711
49
8
Returns: 5306033
17
10
Returns: 6864
17
5
Returns: 4447010
25
5
Returns: 882255210
36
6
Returns: 58766979
44
9
Returns: 533992820
18
8
Returns: 366470
35
3
Returns: 207139387
37
8
Returns: 815165631
27
9
Returns: 949750756
16
1
Returns: 601080390
16
8
Returns: 25742
38
4
Returns: 889606526
33
10
Returns: 556842004
32
7
Returns: 451903069
30
1
Returns: 737009364
29
2
Returns: 100582306
47
3
Returns: 714086996
39
9
Returns: 797990623
41
4
Returns: 802755245
43
1
Returns: 203144612
46
3
Returns: 320978089
47
9
Returns: 958559167
49
9
Returns: 707328735
28
10
Returns: 456330055
5
2
Returns: 44
48
7
Returns: 217835061
35
9
Returns: 618180916