Cod sursă (job #156819)

Utilizator avatar Andreiii500 Puiu Andrei Andreiii500 IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp | 1,23 kb
Rundă Arhiva de probleme Status evaluat
Dată 29 sept. 2015 11:22:45 Scor 0
#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;
}