Victor and Machine
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 240 Accepted Submission(s): 134
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
Source
BestCoder Round #52 (div.2)
/* ***********************************************
Author :CKboss
Created Time :2015年08月22日 星期六 21时57分18秒
File Name :HDOJ5417.cpp
************************************************ */
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <queue>
#include <set>
#include <map>
using namespace std;
int x,y,w,n;
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
while(cin>>x>>y>>w>>n)
{
int X=x;
int time=0;
for(int i=2;i<=n;i++)
{
if(time+w<=x)
{
time+=w;
}
else
{
time=x;
time+=y;
x=x+y+X;
}
}
cout<<time<<endl;
}
return 0;
}