题目链接:http://codeforces.com/contest/820/problem/A
题意:一个人在看一本书,书一共C页,这个人每天看v0页,但是他又开始加速看这本书,每天都比前一天多看a页(就是说第一天看v0页,第二天看v0+a页,第三天看v0+2*a页。。。),还有一个限制一天不能看超过v1页。 然后在第二天开始每天都会回顾之前看过的l页,问你看完整本书要多少天
思路:直接按照题意模拟即可。
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<map> #include<vector> #include<time.h> #include<stack> #include<cmath> using namespace std; typedef long long int LL; typedef unsigned long long int ULL; const int MAXN = 500 + 24; int main(){ //#ifdef kirito // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); //#endif // int start = clock(); int c,v0,v1,a,l; while (~scanf("%d%d%d%d%d", &c,&v0,&v1,&a,&l)){ for (int i = 1,k=0;; i++){ if (i > 1){ k -= l; } k += min(v1, v0 + (i - 1)*a); if (k >= c){ printf("%d ", i); break; } } } //#ifdef LOCAL_TIME // cout << "[Finished in " << clock() - start << " ms]" << endl; //#endif return 0; }