結果
| 問題 | 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)
ゼット