結果
問題 | No.2248 max(C)-min(C) |
ユーザー | Eki1009 |
提出日時 | 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 |
ソースコード
(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)