#abc254h. [abc254_h]Multiply or Divide by 2
[abc254_h]Multiply or Divide by 2
問題文
個の非負整数からなる多重集合 $A=\\{ a_1,\\ldots,a_N \\}, B=\\{ b_1,\\ldots,b_N \\}$ が与えられます。
あなたは以下の操作を好きな順番で何度でも行えます。
- に含まれている非負整数を つ選び、 とする。 から を つ削除し、代わりに を つ追加する。
- に含まれている非負整数を つ選び、 とする。 から を つ削除し、代わりに を つ追加する。( は を超えない最大の整数)
あなたの目的は と を(多重集合として)一致させることです。
目的を達成することが出来るかどうかを判定し、出来る場合は必要な操作回数の最小値を求めてください。
制約
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
目的を達成出来る場合は必要な操作回数の最小値を出力せよ。出来ない場合は -1
を出力せよ。
入力例 1
3
3 4 5
2 4 6
出力例 1
2
次のようにして 回の操作で目的を達成できます。
- とし、 から を つ削除し代わりに を つ追加する。これによって となる。
- とし、 から を つ削除し代わりに $\\left\\lfloor \\frac{x}{2} \\right\\rfloor \\, (=2)$ を つ追加する。これによって となる。
入力例 2
1
0
1
出力例 2
-1
を にすることは出来ません。