結果
問題 |
No.3166 [Cherry 7th Tune *] 桜の守人
|
ユーザー |
![]() |
提出日時 | 2025-05-30 22:13:07 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 745 bytes |
コンパイル時間 | 719 ms |
コンパイル使用メモリ | 82,648 KB |
実行使用メモリ | 170,680 KB |
最終ジャッジ日時 | 2025-05-30 22:13:24 |
合計ジャッジ時間 | 16,013 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 WA * 7 |
ソースコード
T=int(input()) for _ in range(T): n,L,K=map(int,input().split()) xs=list(map(int,input().split())) if L==1: print(1) continue ok=L//2 ng=-1 while ok-ng>1: m=(ok+ng)//2 p=[] z=[0,L] for x in xs: l=x-m r=x+m-1 if 0<=l<=r<L: p+=[(l,r+1)] z+=[l,r+1] elif 0<=l<L<=r: p+=[(l,L-1+1),(0,(r-L+1)-1+1)] z+=[l,L-1+1,0,(r-L+1)-1+1] else: p+=[(L-1-(0-l)+1,L-1+1),(0,r+1)] z+=[L-1-(0-l)+1,L-1+1,0,r+1] z=sorted(set(z)) d={v:i for i,v in enumerate(z)} q=[0]*len(z) for l,r in p: q[d[l]]+=1 q[d[r]]-=1 for i in range(1,len(q)): q[i]+=q[i-1] if min(q[:d[L]])>=K: ok=m else: ng=m print(ok)