程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 百度之星 1001 Energy ConversionTime

百度之星 1001 Energy ConversionTime

編輯:C++入門知識

Energy ConversionTime

Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6795 Accepted Submission(s): 1642

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

4

10 3 1 2

10 2 1 2

10 9 7 3

10 10 10000 0

Sample Output

3

-1

-1

0


#include
#include
#include
#include
#include
#include
#define INF 0x3f3f3f3f
#define maxn 100001
#define LL __int64
using namespace std;

int main()
{
    int t,num,ok;
    scanf("%d",&t);
    LL n,m,v,k,test;
    while(t--)
    {
        ok=1;
        num=0;
        scanf("%I64d%I64d%I64d%I64d",&n,&m,&v,&k);
        while(m



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved