結果
問題 |
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))