結果
| 問題 |
No.3166 [Cherry 7th Tune *] 桜の守人
|
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 2025-05-30 22:14:02 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 688 ms / 2,000 ms |
| コード長 | 748 bytes |
| コンパイル時間 | 511 ms |
| コンパイル使用メモリ | 82,188 KB |
| 実行使用メモリ | 170,580 KB |
| 最終ジャッジ日時 | 2025-05-30 22:14:19 |
| 合計ジャッジ時間 | 15,545 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 26 |
ソースコード
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)+1
ng=0
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)
sasa8uyauya