2014百度の星の資格試合の第1題


Energy Conversion
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11867    Accepted Submission(s): 2861
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 <stdio.h>
#include <iostream>
using namespace std;
int main()
{
    int t;
    while(scanf("%d",&t)!=EOF)
    {
        while(t--)
        {
            long long n,m,v,k;
            int cnt=0;;
            cin>>n>>m>>v>>k;
            while(n>m)
            {
                if(m-v>0&&m<(m-v)*k)
                {
                    m=(m-v)*k;
                    cnt++;
                }
                else break;
            }
            if(n>m)puts("-1");
            else printf("%d
",cnt); } } return 0; }