Cod sursă (job #108343)

Utilizator avatar Claudiu Dan Claudiu Claudiu IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp | 0,83 kb
Rundă Tema 12 clasele 9-10 2014/15 Status evaluat
Dată 20 ian. 2015 23:26:49 Scor 80
#include<stdio.h>

using namespace std;

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

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

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

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

    val=minim=sup(x,m);

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

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

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