結果
| 問題 |
No.3281 Pacific White-sided Dolphin vs Monster
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2025-09-26 22:25:52 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 651 bytes |
| コンパイル時間 | 201 ms |
| コンパイル使用メモリ | 82,212 KB |
| 実行使用メモリ | 93,072 KB |
| 最終ジャッジ日時 | 2025-09-26 22:25:59 |
| 合計ジャッジ時間 | 6,463 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 48 WA * 2 |
ソースコード
INF = float("inf")
N = int(input())
H = list(map(int, input().split()))
ans = 0
p = 1
for times in range(64):
if len(H) == 0:
break
idx = None
min_diff = INF
for i in range(len(H)):
if H[i] <= p:
ans += 1
p *= 2
H.pop(i)
break
diff = H[i] - (1 << (H[i].bit_length() - 1))
if diff == 0:
x = (1 << (H[i].bit_length() - 1)) - 1
diff = H[i] - (1 << (x.bit_length() - 1))
if diff < min_diff:
min_diff = diff
idx = i
else:
ans += 1
H[idx] -= p
p *= 2
print(ans + len(H))