Pagini recente »
Istoria paginii runda/simulare_info_11
|
Diferențe pentru runda/concursul între reviziile 6 și 7
|
Istoria paginii utilizator/ionutn
|
Istoria paginii utilizator/pkarinaa_
|
Cod sursă (job #156819)
Cod sursă (job
#156819)
#include<iostream>
#include<fstream>
using namespace std;
#define eps 0.9
ifstream in("scv.in");
ofstream out("scv.out");
int C,T,M,X;
int cnt,day,add;
int main()
{
int d1,d2,left,build;
in>>C>>T>>M>>X;
add = M;
build = 0;
left = (X+0.0 - cnt) / add + eps;
d1 = day + left;
while(1)
{
++day;
cnt += add;
if(cnt >= X) break;
//left = (X+0.0 - cnt) / add + eps;
//d1 = day + left;
cout<<"day = "<<day<<" cnt="<<cnt<<" d1="<<d1<<" left="<<left<<"\n";
//if(T < (X-cnt) / add)
if(day == build) ++add;
if(day > build && cnt >= C && T < left)
{
//cout<<">>day = "<<day<<" cnt="<<cnt<<" d1="<<d1<<" left="<<left<<"\n";
cnt += T*add;
++add;
//
left = (X+0.0 - cnt) / add + eps;
d2 = day + left;
//
//cout<<"d1="<<d1<<" cnt="<<cnt<<" left="<<left<<"\n";
--add;
cnt -= T*add;
if(d2 < d1)
{
d1 = d2;
cnt -= C;
build = day + T;
}
}
}
out<<day;
return 0;
}