1225 -- 水王爭霸

水王爭霸

Time Limit:1000MS  Memory Limit:65536K
Total Submit:2 Accepted:0

Description

爲了豐富校園網絡生活,學校 BBS 舉行了一次水王爭霸賽。比賽開始後,選手們瘋狂灌水,都想爭取到水王這個榮譽稱號。但學校的 BBS 是如此的不堪一擊,才 1e-3 秒就超負荷了。
現在需要把選手們灌的水集合起來,降低服務器負荷。
事情是這樣得到處理的:
假設每個選手每次灌水量爲1L,每灌一次水,服務器就用一個容量爲無限的虛擬容器收集這1L水。
最後服務器中有N個容器收集了水。而服務器最多能負載K個裝了水的容器。但是,服務器只有一種自救措施:就是把兩個裝了同樣多水的容器合併到這兩個容易中的其中一個,另一個空了的直接free它。
然而不能排除這種情況的存在:通過自救方式,僅由選手們灌好的N容器水不能恰恰好收集成不超過K個非空容器來裝。比如,N=3,K=1的時候,無論如何收集,都只能得到容量分別爲1L和2L的兩個非空容器,不可能得到符合要求的1個非空容器。幸運的是,服務器還有一點點空間,允許你再灌若干次水,使得 BBS 恢復正常。拯救服務器中的虛擬世界這個艱鉅而光榮的任務就落到你身上了。

Input

有1000組輸入數據,每組輸入數據一行,包含兩個正整數N、K,其中N不超過10,000,000,K不超過1,000。

Output

輸出最少需要繼續灌水的次數,如果不可能拯救服務器,輸出-1。

Sample Input

3 1
13 2
1000000 5
100 100

Sample Output

1
3
15808
0

Source

發佈了246 篇原創文章 · 獲贊 1 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章