天天看點

2014 百度之星題解1001 - Energy Conversion

Problem Description

  魔法師百小度也有遇到難題的時候——

  如今,百小度正在一個古老的石門面前,石門上有一段古老的魔法文字。讀懂這樣的魔法文字須要耗費大量的能量和大量的腦力。

  過了許久,百小度最終讀懂魔法文字的含義:石門裡面有一個石盤。魔法師須要通過魔法将這個石盤旋轉X度,以使上面的刻紋與天相相應,才幹打開石門。

  可是,旋轉石盤須要N點能量值,而為了解讀密文,百小度的能量值僅僅剩M點了!破壞石門是不可能的。由于那将須要很多其它的能量。隻是。幸運的是。作為魔法師的百小度可以耗費V點能量,使得自己的能量變為如今剩餘能量的K倍(魔法師的世界你永遠不懂。誰也不知道他是怎麼做到的)。比方。如今百小度有A點能量,那麼他可以使自己的能量變為(A-V)*K點(能量在不論什麼時候都不可以為負。即:假設A小于V的話,就不可以運作轉換)。

  然而。在解讀密文的過程中,百小度預支了他的智商,是以他如今不知道自己是否可以旋轉石盤。打開石門。你能幫幫他嗎?

Input

  輸入資料第一行是一個整數T,表示包括T組測試例子;

  接下來是T行資料。每行有4個自然數N,M,V,K(字元含義見題目描寫叙述);

  資料範圍:

  T<=100

  N,M,V,K <= 10^8

Output

  對于每組資料,請輸出最少做幾次能量轉換才可以有足夠的能量點開門;

  假設無法做到,請直接輸出-1。

Sample Input

410 3 1 2

10 2 1 2

10 9 7 3

10 10 10000 0

Sample Output

3-1

-1

百度之星資格賽落幕,收錄一下當中的試題。整理一下自己寫的代碼。

這是第一題,水題了。

隻是好像讓不少人惱火。

事實上也是非常easy的了。就是注意兩點:

1 轉換能量是小于等于原來的能量的時候就跳出循環。表示不能成功打開魔法門了。

2 轉換過程中有可能是大于整形的數,須要使用long long型