結果

問題 No.3166 [Cherry 7th Tune *] 桜の守人
ユーザー Kude
提出日時 2025-05-30 23:17:25
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,024 ms / 2,000 ms
コード長 863 bytes
コンパイル時間 437 ms
コンパイル使用メモリ 82,420 KB
実行使用メモリ 122,880 KB
最終ジャッジ日時 2025-05-30 23:17:52
合計ジャッジ時間 25,580 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

for _ in range(int(input())):
    n, l, k = map(int, input().split())
    x = sorted(map(int, input().split()))
    lb = 0
    ub = (l + 1) // 2
    while ub - lb > 1:
        c = (lb + ub) // 2
        evs = []
        now = 0
        for xi in x:
            if 0 <= xi - c:
                evs.append((xi - c, -1))
            else:
                evs.append((xi - c + l, -1))
                now += 1
            if xi + c < l:
                evs.append((xi + c, 1))
            else:
                evs.append((xi + c - l, 1))
                now += 1
        evs.sort()
        ok = now >= k
        if c == 171:
            print(x, now)
            print(*evs, sep='\n')
        for t, sub in evs:
            now -= sub
            if now < k:
                ok = False
        if ok:
            ub = c
        else:
            lb = c
    print(ub)
0