Cod sursă (job #108329)

Utilizator avatar andi andrei draghici andi IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp | 1,46 kb
Rundă Tema 12 clasele 9-10 2014/15 Status evaluat
Dată 20 ian. 2015 22:58:29 Scor 27
#include <cstdio>

using namespace std;

int main()
{
    FILE *in,*out;
    in=fopen("scv.in","r");
    out=fopen("scv.out","w");
    int nscv=1,v,m,x,n,i,t,min=0,time=0,var,c,val1,val2;
    fscanf(in,"%d%d%d%d",&c,&t,&m,&x);
    while(min<x)
    {
        if(min>=c)
        {
            val1=(x-min)/nscv;
            if((x-min)%nscv!=0)
                val1++;
            if(x-min+c-t*nscv>0)
            {
                val2=t+(x-min+c-t*nscv)/(nscv+1);
                if(val1>val2)
                {
                    nscv++;
                    min=min-c+(nscv-1)*t;
                    time=time+t;
                }
                else
                {
                    time=time+(x-min)/nscv;
                    if((x-min)%nscv!=0)
                        time++;
                    min=x;
                }
            }
            else
            {
                time=time+val1;
                min=x;
            }
        }
        else
        {
            if(c<x)
            {
                var=time;
                time=time+(c-min)/nscv;
                if((x-min)%nscv!=0)
                    time++;
                min=min+nscv*(time-var);
            }
            else
            {
                time=time+(x-min)/nscv;
                if((x-min)%nscv!=0)
                    time++;
                min=x;
            }
        }
    }
    fprintf(out,"%d",time);
    return 0;
}