結果
問題 |
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 + 1 maxx = (B + sum(C)) // N def calc(x): tmp = 0 for i in range(N): tmp += abs(C[i] - x) return tmp lb = 0 ub = maxx + 1 while ub - lb > 1: mid1 = 2 * lb / 3 + ub / 3 mid2 = lb / 3 + 2 * ub / 3 if calc(mid1) < calc(mid2): ub = mid2 else: lb = mid1 lb = int(lb) ans = INF for j in range(lb, min(int(lb) + 1, maxx) + 1): tmp = 0 for i in range(N): tmp += abs(C[i] - j) ans = min(ans, tmp) print(ans)