結果
| 問題 | No.3513 Greedy Yokan Party |
| コンテスト | |
| ユーザー |
sig
|
| 提出日時 | 2026-04-24 22:19:08 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 938 bytes |
| 記録 | |
| コンパイル時間 | 221 ms |
| コンパイル使用メモリ | 85,292 KB |
| 実行使用メモリ | 130,504 KB |
| 最終ジャッジ日時 | 2026-04-24 22:19:17 |
| 合計ジャッジ時間 | 4,098 ms |
|
ジャッジサーバーID (参考情報) |
judge4_1 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 10 WA * 16 |
ソースコード
#t = int(input())
t = 1
for _ in range(t):
n,l = map(int, input().split())
k = int(input())
a = [0] + list(map(int, input().split())) + [l]
from bisect import bisect_left
cur = bisect_left(a,l//2)
if l//2 - a[cur-1] < a[cur]-l//2:
cur -= 1
li = []
r = []
for i in range(cur+1):
li.append(a[i])
for i in range(cur,n+2):
r.append(a[i]-a[cur])
ll,lr,rl,rr = 0,len(li)-1,0,len(r)-1
for i in range(k-1):
if ll != lr:
m1 = min(li[lr]-li[ll+1],r[rr]-r[rl])
m2 = min(li[lr-1]-li[ll],r[rr]-r[rl])
else:
m1 = -10**18
m2 = -10**18
if rl != rr:
m3 = min(li[lr]-li[ll],r[rr]-r[rl+1])
m4 = min(li[lr]-li[ll],r[rr-1]-r[rl])
else:
m3 = -10**18
m4 = -10**18
ma = max(m1,m2,m3,m4)
if ma == m1:
ll += 1
elif ma == m2:
lr -= 1
elif ma == m3:
rl += 1
else:
rr -= 1
ma = min(li[lr]-li[ll],r[rr]-r[rl])
print(ma)
sig