結果
| 問題 | 
                            No.3166 [Cherry 7th Tune *] 桜の守人
                             | 
                    
| コンテスト | |
| ユーザー | 
                             timi
                         | 
                    
| 提出日時 | 2025-06-12 16:59:23 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 452 ms / 2,000 ms | 
| コード長 | 900 bytes | 
| コンパイル時間 | 211 ms | 
| コンパイル使用メモリ | 81,788 KB | 
| 実行使用メモリ | 167,520 KB | 
| 最終ジャッジ日時 | 2025-06-12 16:59:42 | 
| 合計ジャッジ時間 | 11,602 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 26 | 
ソースコード
T=int(input())
for i in range(T):
  N,L,K=map(int, input().split())
  A=list(map(int, input().split()))
  A=sorted(A)
  ng,ok=0,L//2+1
  while ok-ng>1:
    mid=(ok+ng)//2
    C=set()
    C.add(0)
    C.add(L)
    D={}
    D[0]=0
    D[L]=0
    for a in A:
      if a-mid>=0:
        if a-mid not in D:
          D[a-mid]=0
        D[a-mid]+=1
        C.add(a-mid)
      else:
        D[0]+=1
        if a-mid+L not in D:
          D[a-mid+L]=0
        D[a-mid+L]+=1
        C.add(a-mid+L)
      if a+mid<L:
        r=a+mid
        if r not in D:
          D[r]=0
        D[r]-=1
        C.add(r)
      else:
        D[0]+=1
        if a+mid-L not in D:
          D[a+mid-L]=0
        D[a+mid-L]-=1
        C.add(a+mid-L)
    C=sorted(list(C))
    c=0;f=1
    for i in range(len(C)-1):
      c+=D[C[i]]
      if c<K:
        f=0
        break
    if f:
      ok=mid 
    else:
      ng=mid
  print(ok)
            
            
            
        
            
timi