atcoder#AGC022C. [AGC022C] Remainder Game

[AGC022C] Remainder Game

配点 : 700700

問題文

アオキは数列 a1,a2,...,aNa_{1}, a_{2}, ..., a_{N} で遊んでいます。11 秒ごとに、アオキは次の操作を行います。

  • 正の整数 kk を選ぶ。数列のそれぞれの要素 vv について、アオキは vv を「vvkk で割った余り」に置き換えるか、vv をそのままにするかを選べる。この一連の操作のコストは(書き換えた要素の数によらず)2k2^{k} である。

アオキは、数列を b1,b2,...,bNb_{1}, b_{2}, ..., b_{N} に変えたいです(要素の順番も考慮します)。この目的を達成することが可能か判定し、可能である場合は必要な最小のコストを求めてください。

制約

  • 1N501 \leq N \leq 50
  • 0ai,bi500 \leq a_{i}, b_{i} \leq 50
  • 入力中の値はすべて整数である。

入力

入力は標準入力から以下の形式で与えられる。

NN

a1a_{1} a2a_{2} ...... aNa_{N}

b1b_{1} b2b_{2} ...... bNb_{N}

出力

はじめの数列を b1,b2,...,bNb_{1}, b_{2}, ..., b_{N} に変えるのに必要な最小のコストを出力せよ。目的の達成が不可能である場合は、代わりに 1-1 と出力せよ。

3
19 10 14
0 3 4
160

操作手順の例を挙げます。

  • k=7k = 7 を選ぶ。191955 に、101033 に置き換えて 1414 はそのままにする。数列は 5,3,145, 3, 14 となる。
  • k=5k = 5 を選ぶ。5500 に置き換え、33 はそのままにして 141444 に置き換える。数列は 0,3,40, 3, 4 となる。

合計コストは 27+25=1602^{7} + 2^{5} = 160 です。

3
19 15 14
0 0 0
2

k=1k = 1 を選び、すべてを 00 に変えるとよいです。コストは 21=22^{1} = 2 です。

2
8 13
5 13
-1

与えられた操作では 8855 に変えることができないため、目的の達成は不可能です。

4
2 0 1 8
2 0 1 8
0

この場合は何もする必要がありません。コストは 00 です。

1
50
13
137438953472

オーバーフローにご注意。