結果
問題 |
No.3016 ハチマキおじさん
|
ユーザー |
|
提出日時 | 2025-09-07 15:40:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 253 ms / 2,000 ms |
コード長 | 716 bytes |
コンパイル時間 | 327 ms |
コンパイル使用メモリ | 82,644 KB |
実行使用メモリ | 146,332 KB |
最終ジャッジ日時 | 2025-09-07 15:41:04 |
合計ジャッジ時間 | 8,602 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
def main(): N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.sort() B.sort() AB = [0] * N revAB = [0] * N for i in range(1, N): AB[i] = AB[i - 1] + abs(A[i - 1] - B[i - 1]) for i in range(1, N): revAB[i] = revAB[i - 1] + abs(A[N - i] - B[N - 1 - i]) ans = 10 ** 18 for i in range(N): score = AB[i] - AB[0] + revAB[N - 1 - i] - revAB[0] ans = min(ans, score) anss = [] for i in range(N): score = AB[i] - AB[0] + revAB[N - 1 - i] - revAB[0] if score == ans: anss.append(A[i]) anss = set(anss) print(len(anss)) print(*list(anss)) return main()