1. 程式人生 > >細胞分裂(NOIP2009 普及組第三題)

細胞分裂(NOIP2009 普及組第三題)

改換 基本數據類型 一段 永遠 都是 等待 無法 描述 toolbar

描述

Hanks 博士是BT (Bio-Tech,生物技術) 領域的知名專家。現在,他正在為一個細胞實驗做準備工作:培養細胞樣本。

Hanks 博士手裏現在有N 種細胞,編號從1~N,一個第i 種細胞經過1 秒鐘可以分裂為Si 個同種細胞(Si 為正整數)。現在他需要選取某種細胞的一個放進培養皿,讓其自由分裂,進行培養。一段時間以後,再把培養皿中的所有細胞平均分入M 個試管,形成M 份樣本,用於實驗。Hanks 博士的試管數M 很大,普通的計算機的基本數據類型無法存儲這樣大的M 值,但萬幸的是,M 總可以表示為m1 的m2 次方,即M =m1m2 ,其中m1,m2 均為基本數據類型可以存儲的正整數。

註意,整個實驗過程中不允許分割單個細胞,比如某個時刻若培養皿中有4 個細胞,Hanks 博士可以把它們分入2 個試管,每試管內2個,然後開始實驗。但如果培養皿中有5個細胞,博士就無法將它們均分入2個試管。此時,博士就只能等待一段時間,讓細胞們繼續分裂,使得其個數可以均分,或是幹脆改換另一種細胞培養。

為了能讓實驗盡早開始,Hanks 博士在選定一種細胞開始培養後,總是在得到的細胞“剛好可以平均分入M 個試管”時停止細胞培養並開始實驗。現在博士希望知道,選擇哪種細胞培養,可以使得實驗的開始時間最早。

格式

輸入格式

共有三行。

第一行有一個正整數 N(1 ≤N≤ 10000),代表細胞種數。

第二行有兩個正整數 m1,m2(1 ≤m1 ≤ 30000,1 ≤m2 ≤ 10000),以一個空格隔開, m1m2即表示試管的總數M。

第三行有 N 個正整數,第i 個數Si(1 ≤ Si ≤ 2,000,000,000) 表示第i 種細胞經過1 秒鐘可以分裂成同種細胞的個數。

輸出格式

共一行,為一個整數,表示從開始培養細胞到實驗能夠開始所經過的最少時間(單位為秒)。
如果無論 Hanks 博士選擇哪種細胞都不能滿足要求,則輸出整數-1。

樣例1

樣例輸入1

1
2 1
3

樣例輸出1

-1

樣例2

樣例輸入2

2 
24 1 
30 12

樣例輸出2

2

限制

每個測試點1s。

提示

樣例1說明:
經過1秒鐘,細胞分裂成3個,經過2 秒鐘,細胞分裂成9個,??,可以看出無論怎麽分裂,細胞的個數都是奇數,因此永遠不能分入2 個試管。
樣例2說明:
第 1 種細胞最早在3 秒後才能均分入24 個試管,而第2 種最早在2 秒後就可 以均分(每試管144/(24^1 )=6 個)。故實驗最早可以在2 秒後開始。

細胞分裂(NOIP2009 普及組第三題)