atcoder#AGC022C. [AGC022C] Remainder Game

[AGC022C] Remainder Game

分数:700700

问题描述

Aoki 正在处理一个数字序列 a1,a2,...,aNa_{1}, a_{2}, ..., a_{N}。每秒钟,他执行以下操作:

  • 选择一个正整数 kk。对于序列中的每个元素 vv,Aoki 可以选择将 vv 替换为 vv 除以 kk 的余数,或者不对 vv 进行任何操作。此操作的成本为 2k2^k(无论他更改了多少个元素,成本都是固定的)。

Aoki 想要将序列转换为 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

3
19 10 14
0 3 4
160

以下是可能的操作序列:

  • 选择 k=7k = 7。将 1919 替换为 55,将 1010 替换为 33,对 1414 不做任何操作。序列现在是 5,3,145, 3, 14
  • 选择 k=5k = 5。将 55 替换为 00,对 33 不做任何操作,将 1414 替换为 44。序列现在是 0,3,40, 3, 4

总成本是 27+25=1602^7 + 2^5 = 160

3
19 15 14
0 0 0
2

Aoki 只需选择 k=1k = 1,将所有元素转换为 00。成本为 21=22^1 = 2

2
8 13
5 13
-1

任务不可能完成,因为我们无法通过给定的操作将 88 转换为 55

4
2 0 1 8
2 0 1 8
0

Aoki 在这里不需要进行任何操作。成本为 00

1
50
13
137438953472

注意溢出问题。