题意:Victor有一个机器,这个机器每次开启的瞬间会弹出一个小球,之后每隔ww秒会弹出一个小球。因为机器不是很完善,该机器每开启xx秒就得关闭yy秒进行调整,在机器关闭的瞬间可能会有小球弹出,关闭之后一直到下一次开启之前都不会有小球弹出。
0时刻,机器第一次开启,Victor想要知道第nn个小球弹出的时刻,你能够告诉他吗?
推下公式就行了
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <set> #include <vector> #include <map> #include <queue> #include <set> #include <algorithm> #include <limits> using namespace std; typedef long long LL; int x,y,w,n; int main() { while(~scanf("%d%d%d%d",&x,&y,&w,&n)){ int t=x/w+1; int times; if(n%t==0){ times=(x+y)*(n/t-1)+(t-1)*w; } else { times=(x+y)*(n/t)+(n%t-1)*w; } printf("%d\n",times); } return 0; }
|