QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#809234#9864. CoinhsnWA 15ms10716kbPython3642b2024-12-11 13:25:212024-12-11 13:25:26

Judging History

This is the latest submission verdict.

  • [2024-12-11 13:25:26]
  • Judged
  • Verdict: WA
  • Time: 15ms
  • Memory: 10716kb
  • [2024-12-11 13:25:21]
  • Submitted

answer

import math

def find_last_ans(n, k):
    if k > n / 2:
        return n
    c = k - 1
    ans = 1
    last_ans = 1
    while ans <= n:
        m = math.ceil(ans / c)
        next_multiple = math.ceil(ans / c) * c
        s = min((next_multiple - ans - 1) // m + 1, (n - ans) // m)
        if s <= 0:
            if ans + m <= n:
                ans += m
                last_ans = ans
            else:
                break
        else:
            ans += s * m
            last_ans = ans
    return last_ans

t = int(input())
for _ in range(t):
    n, k = map(int, input().split())
    print(find_last_ans(n, k))

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 15ms
memory: 10716kb

input:

4
6 2
8 3
10000 2
1919810 114514

output:

4
8
8192
1919805

result:

ok 4 number(s): "4 8 8192 1919805"

Test #2:

score: -100
Wrong Answer
time: 14ms
memory: 10708kb

input:

100
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 10
2 11
3 2
3 3
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
4 10
4 11
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
5 10
5 11
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
6 10
6 11
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
7 10
7 11
8 2
8 3
8 4
8 5
8 6
8 7
8 8
8 9
8 10
8 11
9 ...

output:

2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
4
5
6
6
6
6
6
6
6
6
4
5
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
8
8
8
9
10
10
10
10
10
10
8
8
11
9
11
11
11
11
11
11

result:

wrong answer 11th numbers differ - expected: '2', found: '3'