結果
問題 | No.3016 ハチマキおじさん |
ユーザー |
![]() |
提出日時 | 2025-02-04 05:17:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 311 ms / 2,000 ms |
コード長 | 841 bytes |
コンパイル時間 | 676 ms |
コンパイル使用メモリ | 82,592 KB |
実行使用メモリ | 169,576 KB |
最終ジャッジ日時 | 2025-02-04 05:17:27 |
合計ジャッジ時間 | 10,676 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
from itertools import accumulatedef cumsum(seq, reverse=False) -> list:if reverse:res = cumsum(reversed(seq))res.reverse()return resreturn list(accumulate(seq))INF = 1 << 60N = int(input())A = list(map(int, input().split()))B = list(map(int, input().split()))A.sort()B.sort()lefts = []for a, b in zip(A, B):lefts.append(abs(a - b))rights = []for a, b in zip(A[1:], B):rights.append(abs(a - b))lacc = cumsum(lefts)racc = [0] + cumsum(rights, reverse=True)min_d = INF # 不満度s = set()for i in range(N):# i 番目のハチマキを残したときの不満度x = lacc[i-1] if i > 0 else 0y = racc[i+1] if i+1 < N else 0d = x + yif min_d > d:min_d = ds.clear()if min_d == d:s.add(A[i])print(len(s))print(*s)