結果
| 問題 | No.3281 Pacific White-sided Dolphin vs Monster | 
| コンテスト | |
| ユーザー |  detteiuu | 
| 提出日時 | 2025-09-26 22:55:00 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 164 ms / 2,000 ms | 
| コード長 | 396 bytes | 
| コンパイル時間 | 348 ms | 
| コンパイル使用メモリ | 82,404 KB | 
| 実行使用メモリ | 95,852 KB | 
| 最終ジャッジ日時 | 2025-10-03 17:37:21 | 
| 合計ジャッジ時間 | 5,965 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 51 | 
ソースコード
from heapq import heappush, heappop
N = int(input())
H = sorted(list(map(int, input().split())))
MAX = max(H[i].bit_length()-i-1 for i in range(N))
que = []
for h in H:
    heappush(que, -h)
cnt = MAX+N-1
for _ in range(MAX+N):
    if not que:
        break
    n = -heappop(que)
    n -= 1<<min(cnt, 60)
    cnt -= 1
    if 1 <= n:
        heappush(que, -n)
print(N+MAX+1 if que else N+MAX)
            
            
            
        