Cod sursă (job #108345)

Utilizator avatar AlexPascadi Alex Pascadi AlexPascadi IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp | 0.82 kb
Rundă Tema 12 clasele 9-10 2014/15 Status evaluat
Dată 20 ian. 2015 23:31:26 Scor 100
#include <stdio.h>

using namespace std;

int parte (int a, int b)
{
    int v=a/b;
    if(b*v<a) v++;
    return v;
}

int main ()
{
    FILE *in = fopen ("scv.in", "r");
    FILE *out = fopen ("scv.out", "w");

    int c,t,m,x;
    int nr=1,d=0,s=0,minim,v,p;

    fscanf(in,"%d%d%d%d",&c,&t,&m,&x);

    v=minim=parte(x,m);

    d=parte(c,m);
    s=m*d;

    while(s<=x && s-c+nr*m*t<=x && v<=minim)
    {
        minim=v;
        //construieste un scv
        s-=c;
        d+=t; s+=nr*m*t;
        nr++;
        v=d+parte(x-s,nr*m);
        //actualizeaza la urmatoarea posibila constructie
        if(s<c)
        {
            p=parte(c-s,nr*m);
            s+=nr*m*p;
            d+=p;
        }
    }
    if(v<minim)
        minim=v;

    fprintf(out,"%d",minim);
    return 0;
}