結果

問題 No.2248 max(C)-min(C)
ユーザー Eki1009Eki1009
提出日時 2023-03-17 22:03:59
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,984 ms / 3,000 ms
コード長 477 bytes
コンパイル時間 349 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 161,212 KB
最終ジャッジ日時 2024-09-26 13:08:37
合計ジャッジ時間 52,044 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 51
権限があれば一括ダウンロードができます

ソースコード

diff #

(n,),A,B = [list(map(int,t.split())) for t in open(0)]
L = []
for i in range(n):
  if A[i] > B[i]:
    A[i],B[i] = B[i],A[i]
  L.append((A[i],i)),L.append((A[i]+B[i]>>1,i)),L.append((B[i],i))
L.sort()
r = 0
C = [0]*n
t = 0
ans = 1<<30
m = 3*n
for l in range(m):
  while t < n and r < m:
    v,i = L[r]
    if C[i] == 0:
      t += 1
    C[i] += 1
    r += 1
  if t < n:
    break
  ans = min(ans,L[r-1][0]-L[l][0])
  v,i = L[l]
  C[i] -= 1
  if C[i] == 0:
    t -= 1
print(ans)
0