/ Vijos / 题库 /

细胞分裂

细胞分裂

时间限制:1秒  内存限制:256M


【问题描述】

  Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家。现在,他正在为一个细胞实 验做准备工作:培养细胞样本。

  Hanks 博士手里现在有 \(N\) 种细胞,编号从 \(1..N\),一个第 \(i\) 种细胞经过 1 秒钟可以分裂为 \(S_i\) 个同种细胞(\(S_i\) 为正整数)。现在他需要选取某种细胞的一个放进培养皿,让其自由分裂, 进行培养。一段时间以后,再把培养皿中的所有细胞平均分入 \(M\) 个试管,形成 \(M\) 份样本, 用于实验。Hanks 博士的试管数 \(M\) 很大,普通的计算机的基本数据类型无法存储这样大的 \(M\) 值,但万幸的是,\(M\) 总可以表示为 \(m_1\) 的 \(m_2\) 次方,即 \(M = {m_1}^{m_2} \),其中 \(m_1,m_2\) 均为基本数据类型可以存储的正整数。

  注意,整个实验过程中不允许分割单个细胞,比如某个时刻若培养皿中有 4 个细胞, Hanks 博士可以把它们分入 2 个试管,每试管内 2 个,然后开始实验。但如果培养皿中有 5 个细胞,博士就无法将它们均分入 2 个试管。此时,博士就只能等待一段时间,让细胞们继 续分裂,使得其个数可以均分,或是干脆改换另一种细胞培养。 为了能让实验尽早开始,Hanks 博士在选定一种细胞开始培养后,总是在得到的细胞“刚 好可以平均分入 \(M\) 个试管”时停止细胞培养并开始实验。现在博士希望知道,选择哪种细 胞培养,可以使得实验的开始时间最早。  

【输入格式】

  共有三行。
  第一行有一个正整数 \(N\),代表细胞种数。
  第二行有两个正整数 \(m_1,m_2\),以一个空格隔开,\({m_1}^{m_2}\) 即表示试管的总数 \(M\)。
  第三行有 \(N\) 个正整数,第 \(i\) 个数 \(S_i\) 表示第 \(i\) 种细胞经过 1 秒钟可以分裂成同种细胞的个数。

【输出格式】

  共一行,为一个整数,表示从开始培养细胞到实验能够开始所经过的 最少时间(单位为秒)。 如果无论 Hanks 博士选择哪种细胞都不能满足要求,则输出整数-1。

【输入输出样例1】

 Input

1
2 1
3

 Output

-1

【输入输出样例1解释】

  经过 1 秒钟,细胞分裂成 3 个,经过 2 秒钟,细胞分裂成 9 个,……,可以看出无论怎么分 裂,细胞的个数都是奇数,因此永远不能分入 2 个试管。

【输入输出样例2】

 Input

2
24 1
30 12

 Output

2

【输入输出样例2解释】

  第 1 种细胞最早在 3 秒后才能均分入 24 个试管,而第 2 种最早在 2 秒后就可以均分(每 试管 \(144/(24^1)=6\) 个)。故实验最早可以在 2 秒后开始。

【数据限制】

  对于 \(50\%\) 的数据,有 \({m_1}^{m_2} ≤30000\)。
  对于所有的数据,有 \(1≤N≤10000, 1≤m_1≤30000, 1≤m_2≤10000, 1≤S_i≤2,000,000,000\)。

【来源】

  Mr.he

信息

ID
1349
难度
4
分类
数论 点击显示
标签
递交数
0
已通过
0
通过率
?
被复制
1
上传者