Victor and Machine
Accepts: 452
Submissions: 1123
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 131072/65536 K (Java/Others)
分析:理解题意的时候总是想不明白,想了好久才明白,因为每次重新开始都会弹出一个球,而且每次修理后都会重新开始,理解这些就好了,然后直接模拟就好,1A
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include<iostream>
using namespace std;
#define LL long long
int main()
{
int x,y,w,n,a,b;
while(cin>>x>>y>>w>>n){
a=x/w; //在要停下修理之前可以弹出的小球个数
b=x%w;
int sum=0,t=0;
n--;
int i;
for( i=n;i>0;i--){ //每次开始--,表示弹一个球
if(i-a<=0){
sum+=i*w;//有可能不用弹a个就达到n个要求了
break;
}
else{
i-=a;
sum+=a*w+y+b;//时间和加上从开始一直到再一次的开始
}
}
cout<<sum<<endl;
}
return 0;
}