#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int enCon( long long n,long long m,long long v,long long k)
{
int times=0;
if(m>=n)
return 0;
if((m-v)*k<=m)
return -1;
while(m<n)
{
times++;
m=(m-v)*k;
}
return times;
}
int main()
{
long long num=0;
cin>>num;
while(num-->0)
{
long long n,m,v,k;
cin>>n>>m>>v>>k;
cout<<enCon(n,m,v,k)<<endl;
}
return 0;
}
做这题的时候看题不认真,看错了n个地方,本来很简单的一道题。
吐槽一下,这句话“
但是,旋转石盘需要N点能量值,而为了解读密文,百小度的能量值只剩M点了!破坏石门是不可能的,” 这句话明显的意思是初始n>m,但是测试数据里面还可以相等,语文没学好啊。