atcoder#ABC254H. [ABC254Ex] Multiply or Divide by 2
[ABC254Ex] 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
2
1
0
1
-1
提示
制約
- $ 0\ \leq\ a_1\ \leq\ \ldots\ \leq\ a_N\ \leq\ 10^9 $
- $ 0\ \leq\ b_1\ \leq\ \ldots\ \leq\ b_N\ \leq\ 10^9 $
- 入力はすべて整数
Sample Explanation 1
次のようにして 回の操作で目的を達成できます。 - とし、 から を つ削除し代わりに を つ追加する。これによって となる。 - とし、 から を つ削除し代わりに $ \left\lfloor\ \frac{x}{2}\ \right\rfloor\ \,\ (=2) $ を つ追加する。これによって となる。
Sample Explanation 2
を にすることは出来ません。