結果
| 問題 | No.198 キャンディー・ボックス2 |
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 20:30:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 38 ms / 1,000 ms |
| コード長 | 833 bytes |
| コンパイル時間 | 165 ms |
| コンパイル使用メモリ | 82,300 KB |
| 実行使用メモリ | 53,812 KB |
| 最終ジャッジ日時 | 2025-11-26 11:47:55 |
| 合計ジャッジ時間 | 2,160 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 27 |
ソースコード
B = int(input())
N = int(input())
Ci = [int(input()) for _ in range(N)]
sum_total = sum(Ci) + B
max_X = sum_total // N if N != 0 else 0 # Handle N=0, though constraints say N≥1
candidates = set()
for c in Ci:
candidates.add(c)
candidates.add(c + 1)
candidates.add(c - 1)
candidates.add(max_X)
candidates.add(max_X - 1)
candidates.add(max_X + 1)
valid_candidates = [x for x in candidates if 0 <= x <= max_X]
min_ops = float('inf')
for x in valid_candidates:
sum_op = 0
take = 0
put = 0
for c in Ci:
if c > x:
delta = c - x
take += delta
elif c < x:
delta = x - c
put += delta
sum_op += abs(c - x)
B_prime = B + take - put
if B_prime >= 0:
if sum_op < min_ops:
min_ops = sum_op
print(min_ops)
lam6er