結果
問題 | No.198 キャンディー・ボックス2 |
ユーザー |
![]() |
提出日時 | 2024-05-27 19:33:34 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 44 ms / 1,000 ms |
コード長 | 561 bytes |
コンパイル時間 | 263 ms |
コンパイル使用メモリ | 81,912 KB |
実行使用メモリ | 53,680 KB |
最終ジャッジ日時 | 2024-12-20 20:36:00 |
合計ジャッジ時間 | 2,580 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 26 |
ソースコード
B = int(input())N = int(input())C = [int(input()) for _ in range(N)]INF = 10 ** 10 + 1maxx = (B + sum(C)) // Ndef calc(x):tmp = 0for i in range(N):tmp += abs(C[i] - x)return tmplb = 0ub = maxx + 1while ub - lb > 1:mid1 = 2 * lb / 3 + ub / 3mid2 = lb / 3 + 2 * ub / 3if calc(mid1) < calc(mid2):ub = mid2else:lb = mid1lb = int(lb)ans = INFfor j in range(lb, min(int(lb) + 1, maxx) + 1):tmp = 0for i in range(N):tmp += abs(C[i] - j)ans = min(ans, tmp)print(ans)