配点 : 600 点
問題文
N 個の非負整数からなる多重集合 A={a1,…,aN},B={b1,…,bN} が与えられます。
あなたは以下の操作を好きな順番で何度でも行えます。
- A に含まれている非負整数を 1 つ選び、x とする。 A から x を 1 つ削除し、代わりに 2x を 1 つ追加する。
- A に含まれている非負整数を 1 つ選び、x とする。 A から x を 1 つ削除し、代わりに ⌊2x⌋ を 1 つ追加する。(⌊x⌋ は x を超えない最大の整数)
あなたの目的は A と B を(多重集合として)一致させることです。
目的を達成することが出来るかどうかを判定し、出来る場合は必要な操作回数の最小値を求めてください。
制約
- 1≤N≤105
- 0≤a1≤…≤aN≤109
- 0≤b1≤…≤bN≤109
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N
a1 … aN
b1 … bN
出力
目的を達成出来る場合は必要な操作回数の最小値を出力せよ。出来ない場合は -1
を出力せよ。
3
3 4 5
2 4 6
2
次のようにして 2 回の操作で目的を達成できます。
- x=3 とし、A から x(=3) を 1 つ削除し代わりに 2x(=6) を 1 つ追加する。これによって A={4,5,6} となる。
- x=5 とし、A から x(=5) を 1 つ削除し代わりに ⌊2x⌋(=2) を 1 つ追加する。これによって A={2,4,6} となる。
1
0
1
-1
{0} を {1} にすることは出来ません。