CF382B Number Busters

· · 题解

题目传送门

思路:

只要 c 还小于 a 时,就要执行操作,

如果 c 大于 a,就直接退出循环,并且每一次循环时答案都加一,其他几位题解也是这样的思路,但都无法通过,我们可以把它转化为数学,不用循环。

贴代码

#include<bits/stdc++.h>
using namespace std;
long long sum,ans,a,b,c,w,x,t;
int main()
{
    cin>>a>>b>>w>>x>>c; 
    sum=(long long)a*w+b;//求出1项 
    ans=(long long)c*w;//求出2项 
    t=(ans-sum-1)/(w-x)+1;
    if(t<0) cout<<0;//答案要大于0 
    else cout<<t;//输出t 
    return 0;
}