Problem Statement
For example, consider the case where n = 5, m = 2, and k = 3. The kids are arranged clockwise as follows: 1, 2, 3, 4, 5. Starting with kid 1, they start counting from 1 to 2. Kid 2 gets number 2, so he is eliminated from the circle, which now looks like: 1, 3, 4, 5. They start counting again with kid 3. Kid 4 gets number 2 this time, so he is the next to get eliminated. Then, kid 1 is eliminated, followed by kid 5, and finally, kid 3. Johnny is kid 3, so he is the 5th kid to get eliminated, and he is assigned the 5th role.
Given n, m, and k, return the role assigned to Johnny. Roles are 1-indexed, so the 1st eliminated kid gets role 1, the 2nd eliminated kid gets role 2, and so on.
Definition
- Class:
- KidsGame
- Method:
- kthKid
- Parameters:
- int, int, int
- Returns:
- int
- Method signature:
- int kthKid(int n, int m, int k)
- (be sure your method is public)
Constraints
- n and m will be between 1 and 500000, inclusive.
- k will be between 1 and n, inclusive.
Examples
10
3
6
Returns: 2
10
3
4
Returns: 10
1000
3000
7
Returns: 530
500000
250000
93986
Returns: 358332
5
2
3
Returns: 5
This is the example previously explained.
1
10
1
Returns: 1
There is only one kid, so he will be eliminated on the first step.
99
100
99
Returns: 94
19999
7
5
Returns: 18019
99999
11111
3
Returns: 69557
500000
499999
322414
Returns: 95635
11
3
7
Returns: 11
11
7
4
Returns: 10
11
11
4
Returns: 10
11
15
10
Returns: 11
11
19
4
Returns: 10
11
23
3
Returns: 9
11
27
6
Returns: 8
11
31
11
Returns: 11
11
35
10
Returns: 10
11
39
10
Returns: 10
13
3
10
Returns: 9
13
7
3
Returns: 9
13
11
6
Returns: 9
13
15
12
Returns: 9
13
19
2
Returns: 11
13
23
11
Returns: 9
13
27
7
Returns: 11
13
31
8
Returns: 12
13
35
8
Returns: 13
13
39
10
Returns: 11
15
3
10
Returns: 10
15
7
4
Returns: 14
15
11
14
Returns: 11
15
15
7
Returns: 12
15
19
11
Returns: 13
15
23
14
Returns: 11
15
27
8
Returns: 14
15
31
11
Returns: 11
15
35
10
Returns: 10
15
39
3
Returns: 12
17
3
16
Returns: 12
17
7
15
Returns: 15
17
11
14
Returns: 16
17
15
11
Returns: 12
17
19
1
Returns: 16
17
23
11
Returns: 13
17
27
11
Returns: 14
17
31
3
Returns: 15
17
35
17
Returns: 15
17
39
15
Returns: 14
19
3
4
Returns: 14
19
7
5
Returns: 14
19
11
7
Returns: 13
19
15
18
Returns: 13
19
19
18
Returns: 15
19
23
8
Returns: 14
19
27
12
Returns: 18
19
31
18
Returns: 19
19
35
2
Returns: 18
19
39
5
Returns: 18
2
2
1
Returns: 2
61355
81783
5665
Returns: 45940
98295
63339
57647
Returns: 94551
82168
86940
1719
Returns: 80093
51756
64056
2884
Returns: 36994
69280
57661
7361
Returns: 57491
54705
85616
23037
Returns: 43481
75842
58856
64098
Returns: 63630
91767
63707
83980
Returns: 84314
500000
500000
2
Returns: 362658
500000
500000
74191
Returns: 475701
500000
500000
74192
Returns: 127809
255643
469280
11269
Returns: 234355
454705
485616
147385
Returns: 436576
446084
400647
370348
Returns: 436625
453454
337230
416029
Returns: 419376
334846
291126
145218
Returns: 302662
381406
338883
138442
Returns: 362447
377030
317786
47086
Returns: 367718
291764
493885
102162
Returns: 284447
310315
290668
224
Returns: 304687
500000
1
500000
Returns: 500000
500000
500000
50000
Returns: 75608
500000
250000
99999
Returns: 266841
500000
499999
1
Returns: 476477
500000
500000
250000
Returns: 290278
500000
400000
177
Returns: 116239
500000
500000
500000
Returns: 1
99999
11111
3
Returns: 69557
500000
11111
3
Returns: 328693
500000
500000
300000
Returns: 138262
500000
11111
7
Returns: 492900
500000
500000
4564
Returns: 460688
500000
2
499999
Returns: 375000
500000
100000
43
Returns: 441344
500000
500000
14555
Returns: 124402
500000
500000
499999
Returns: 120281
500000
1
500000
Returns: 500000
500000
25000
499999
Returns: 88716
500000
493222
52
Returns: 361568
500000
500000
74176
Returns: 500000
500000
8
3
Returns: 243546
99999
11117
3
Returns: 44163
500000
8
4
Returns: 117188
5
2
1
Returns: 3
499999
475895
135867
Returns: 7626
499999
1
499998
Returns: 499998
500000
499999
499997
Returns: 378356
499999
11111
3
Returns: 398470
500000
232991
66086
Returns: 90000
500000
500000
2
Returns: 362658
500000
499999
223118
Returns: 500000
50000
200
200
Returns: 1
500000
499999
3
Returns: 378845
5
6
2
Returns: 3
1
1
1
Returns: 1
444444
11111
3
Returns: 375626
500000
499876
500
Returns: 494639
500000
499000
3
Returns: 331423
500000
500000
400000
Returns: 274559
500000
11
499999
Returns: 401078
500000
500000
13504
Returns: 499655
500000
400000
250000
Returns: 38304
500000
500000
299797
Returns: 496085
500000
250000
333333
Returns: 368574