#592. 原子裂变

原子裂变

【题目描述】

有 N 种原子,编号为 1 …… N。

每种原子都有其固定的裂变规律。对于编号为 i 的这种原子,每经过一个时间单位,一个这种原子便可以裂变成为 KiK_i 个同种原子。

现在需要选取某种原子的一个,将该原子放到裂变装置中,让其进行裂变。经过若干个单位时间之后,再把裂变装置中的所有原子均分到 M 个容器中进行下一步的科学实验。此处的 M 恰好可以表示成 aba^b 的形式。注意:如果裂变装置中的所有原子不能均分到 M 个容器中,则需要继续等待,直到原子总数可以均分为止。

问:选择哪一种原子,可以使得进行下一步的科学实验开始的时间最早。

假设将选取的原子放入裂变装置中的时刻记为 0,你只需要输出原子可以均分的最早时刻。

【输入格式】

第一行:包含一个整数 N。

第二行:包含两个整数 a, b

第三行:包含 N 个整数 KiK_i

【输出格式】

一个整数,表示答案。如果原子总数永远无法均分,则输出 -1

【输入样例1】

1 
2 3
5

【输出样例1】

-1

【样例1解释】

有 1 种原子,8 个容器。

每个原子每经过 1 个时间单位,可以裂变成 5 个原子。裂变出来的原子总数始终为奇数,永远无法均分到 8 个容器中。

【输入样例2】

2
2 3
10 12

【输出样例2】

2

【样例2解释】

有 2 种原子,8 个容器。

对于第 1 种原子,每个原子每经过 1 个时间单位,可以裂变成 10 个原子。最少经过 3 个时间单位后,裂变出来的原子总数为 1000,可以均分到 8 个容器中。

对于第 2 种原子,每个原子每经过 1 个时间单位,可以裂变成 12 个原子。最少经过 2 个时间单位后,裂变出来的原子总数为 144,可以均分到 8 个容器中。

所以选择第 2 种原子可以使得原子总数可以均分的时间最早。

【数据范围】

50% 的数据: ab30000a^b ≤ 30000

100% 的数据: 1N100001 ≤ N ≤ 100001a300001 ≤ a ≤ 300001b100001 ≤ b ≤ 100001Ki2×1091 ≤ K_i ≤ 2 × 10^9