No.3281 Pacific White-sided Dolphin vs Monster
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 51
作問者 :
hirayuu_yc
/ テスター :
highlighter
タグ : / 解いたユーザー数 51
作問者 :

問題文最終更新日: 2025-09-24 13:20:57
問題文
今度はカマイルカがセルリアン(モンスター)と戦うようです。
カマイルカのとくいわざは、端的に言えば発動させることで自身の与ダメージが増加します。
これを簡略化して、「ターン経過ごとに与ダメージが $2$ 倍になる」と見なしましょう。実際はそこまで極端に強くはありませんが。
$N$ 匹のセルリアンがいます。セルリアンには $1,2,\dots,N$ と番号がつけられていて、セルリアン $i$ の体力は $H_i$ です。
カマイルカの攻撃力を $p$ とします。はじめ、$p=1$ です。カマイルカは、任意の回数セルリアンに攻撃を行うことができます。攻撃は以下のようなものです。
- 好きなセルリアンを選び、そのセルリアンの体力を $p$ 減らす。体力が $0$ 以下になったセルリアンは消滅する。その後、$p$ の値が $2$ 倍になる。
すべてのセルリアンを消滅させるために必要な攻撃回数の最小値を求めてください。ただし、カマイルカは十分に強く、倒されることはありません。
入力
$N$ $H_1$ $H_2$ $\dots$ $H_N$
- $1\leq N\leq 10^5$
- $1\leq H_i\leq 10^{18}$
- 入力はすべて整数
出力
答えを出力せよ。
サンプル
サンプル1
入力
3 9 2 4
出力
4
以下のようにすると、$4$ 回の攻撃ですべてのセルリアンを消滅させることができます。
- セルリアン $1$ の体力を $p$ $(=1)$ 減らし、$8$ にする。$p=2$ となる。
- セルリアン $2$ の体力を $p$ $(=2)$ 減らし、$0$ にする。セルリアン $2$ は消滅する。$p=4$ となる。
- セルリアン $3$ の体力を $p$ $(=4)$ 減らし、$0$ にする。セルリアン $3$ は消滅する。$p=8$ となる。
- セルリアン $1$ の体力を $p$ $(=8)$ 減らし、$0$ にする。セルリアン $1$ は消滅する。$p=16$ となる。
$3$ 回以下の攻撃ですべてのセルリアンを消滅させることはできないことが示せるので、答えは $4$ です。
サンプル2
入力
1 924
出力
10
オーバーキルでも問題ありません。
サンプル3
入力
6 924 924924 924924924 924924924924 924924924924924 924924924924924924
出力
60
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。