結果
問題 |
No.3166 [Cherry 7th Tune *] 桜の守人
|
ユーザー |
![]() |
提出日時 | 2025-05-30 21:34:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 690 ms / 2,000 ms |
コード長 | 911 bytes |
コンパイル時間 | 375 ms |
コンパイル使用メモリ | 82,672 KB |
実行使用メモリ | 89,656 KB |
最終ジャッジ日時 | 2025-05-30 21:35:18 |
合計ジャッジ時間 | 18,027 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 26 |
ソースコード
Q=int(input()) for _ in range(Q): N,L,K=map(int,input().split()) A=list(map(int,input().split())) LL=L h=[] A.sort() for i in range(N): h.append(2*A[i]) for i in range(N): h.append(2*L+2*A[i]) for i in range(N): h.append(4*L+2*A[i]) from bisect import bisect_left,bisect_right l=0 r=2*L while True: if l==r: break m=(l+r)//2 p=[] ans=True for i in range(N): x=2*A[i]+m+1 x%=2*LL p.append(x) y=2*A[i]-(m+1) y%=2*LL p.append(y) for x in p: y=x+2*LL count2=bisect_right(h,y+m) count1=bisect_right(h,y-(m+1)) c=count2-count1 if c<K: ans=False if ans==True: r=m else: l=m+1 print((l+1)//2)