Problem Description
Victor has a machine. When the machine starts up, it will pop out a ball immediately. After that, the machine will pop out a ball every w seconds. However, the machine has some flaws, every time after x seconds of process the machine has to turn off for y seconds for maintenance work. At the second the machine will be shut down, it may pop out a ball. And while it's off, the machine will pop out no ball before the machine restart.Now, at the 0 second, the machine opens for the first time. Victor wants to know when the n-th ball will be popped out. Could you tell him?
Input
The input contains several test cases, at most 100 cases.Each line has four integers x, y, w and n. Their meanings are shown above。1≤x,y,w,n≤100.
Output
For each test case, you should output a line contains a number indicates the time when the n-th ball will be popped out.
Sample Input
2 3 3 3
98 76 54 32
10 9 8 100
Sample Output
10
2664
939
题意:一台机器每W分钟吐出一个球,但是它每隔x分要停y分钟。它每次开始时要吐出一个球。求吐出第n个球的时间。
我们先算每x分钟能吐出多少个球,用n除每分钟吐出的球,就能知道机器要停机次,然后就简单了。
1 #include2 #include 3 using namespace std; 4 int main() 5 { 6 int n,w,x,y,ans,t; 7 while (~scanf("%d%d%d%d",&x,&y,&w,&n)) 8 { 9 t=x/w+1;10 if (n%t==0)11 {12 ans=(n/t-1)*(x+y);13 ans+=(t-1)*w;14 }15 else16 {17 ans=(n/t)*(x+y);18 ans+=(n%t-1)*w;19 }20 printf("%d\n",ans);21 }22 }