結果
問題 | No.2248 max(C)-min(C) |
ユーザー |
![]() |
提出日時 | 2023-03-17 22:12:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,919 ms / 3,000 ms |
コード長 | 829 bytes |
コンパイル時間 | 222 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 148,276 KB |
最終ジャッジ日時 | 2024-09-18 11:18:43 |
合計ジャッジ時間 | 50,878 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 |
ソースコード
from collections import *N = int(input())A = list(map(int, input().split()))B = list(map(int, input().split()))D = []for i in range(N):D.append((A[i], i))D.append((B[i], i))D.append(((A[i] + B[i])//2, i))D.sort(reverse=True)cnt = 0L = [0] * Nans = 10 ** 18Q = deque()while D:now = D[-1][0]while D:if D[-1][0] == now:_, ind = D.pop()Q.append((ind, now))L[ind] += 1if L[ind] == 1:cnt += 1else:breakwhile cnt == N:val = Q[0][1]ans = min(ans, abs(Q[0][1] - Q[-1][-1]))while Q[0][1] == val:ind, _ = Q.popleft()L[ind] -= 1if L[ind] == 0:cnt -= 1if not Q:breakprint(ans)