模拟
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<vector> #include<string> #include<cstring> #include <cmath> #include<algorithm> #include<stack> using namespace std; int T; long long N; long long M; long long V; long long K; long long ans; void solve() { if(M>=N) { ans=0; return; } else if(M<N&&M<=V) { ans=-1; return; } long long tmp=M; while(tmp<N) { // if(tmp<V) // { // ans=-1; // return; // } long long t2=(tmp-V)*K; if(t2<=tmp) { ans=-1; return; } else { tmp=t2; ans++; } } } int main() { freopen("input.txt","r",stdin); scanf("%d",&T); for(int i=1;i<=T;i++) { scanf("%I64d %I64d %I64d %I64d",&N,&M,&V,&K); ans=0; solve(); printf("%I64d\n",ans); } return 0; }