AT_abc323_d [ABC323D] Merge Slimes
Description
[problemUrl]: https://atcoder.jp/contests/abc323/tasks/abc323_d
最初、$ N $ 種類のサイズのスライムがいます。
具体的には、$ 1\leq\ i\leq\ N $ について、サイズ $ S_i $ のスライムが $ C_i $ 匹います。
高橋君はスライムの合成を好きな順番で好きなだけ($ 0 $ 回でも良い)繰り返すことができます。
スライムの合成では、次のことを行います。
- **同じ** サイズの $ 2 $ 匹のスライムを選ぶ。選ばれたスライムのサイズが $ X $ であったとき、新しくサイズ $ 2X $ のスライムが出現する。合成後、選ばれた元のスライムは $ 2 $ 匹とも消滅する。
高橋君はスライムの匹数を最小にしたいと考えています。 高橋君がうまく合成を繰り返した時、最小で何匹にすることができるでしょうか?
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_1 $ $ C_1 $ $ S_2 $ $ C_2 $ $ \vdots $ $ S_N $ $ C_N $
Output Format
高橋君が合成を繰り返した後のスライムの匹数としてあり得る最小の数を出力せよ。
Explanation/Hint
### 制約
- $ 1\leq\ N\leq\ 10^5 $
- $ 1\leq\ S_i\leq\ 10^9 $
- $ 1\leq\ C_i\leq\ 10^9 $
- $ S_1,S_2,\ldots,S_N $ はすべて異なる。
- 入力はすべて整数
### Sample Explanation 1
最初、サイズ $ 3 $ のスライムが $ 3 $ 匹、サイズ $ 5 $ のスライムが $ 1 $ 匹、サイズ $ 6 $ のスライムが $ 1 $ 匹います。 高橋君は次のように合成を $ 2 $ 回行うことができます。 - まず、サイズ $ 3 $ のスライム $ 2 $ 匹を選んで合成を行います。サイズ $ 3 $ のスライムが $ 1 $ 匹、サイズ $ 5 $ のスライムが $ 1 $ 匹、サイズ $ 6 $ のスライムが $ 2 $ 匹となります。 - 次に、サイズ $ 6 $ のスライム $ 2 $ 匹を選んで合成を行います。サイズ $ 3 $ のスライムが $ 1 $ 匹、サイズ $ 5 $ のスライムが $ 1 $ 匹、サイズ $ 12 $ のスライムが $ 1 $ 匹となります。 高橋君は最初の状態からどのように合成を繰り返してもスライムを $ 2 $ 匹以下にすることはできないため、$ 3 $ を出力します。
### Sample Explanation 2
高橋君は合成を行うことができません。