Pentru această operație este nevoie să te autentifici.

Cod sursă (job #108359)

Utilizator avatar vladp Vlad Panait vladp IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp | 1,40 kb
Rundă Tema 12 clasele 9-10 2014/15 Status evaluat
Dată 21 ian. 2015 01:12:28 Scor 85
#include <stdio.h>

using namespace std;

int sumCur,nrNave,costNava,timpNava,minZi,timpTrecut;
int timp1,timp2;

int main()
{
    FILE *fin,*fout;

    fin=fopen("scv.in","r");
    fout=fopen("scv.out","w");

    int c,t,m,x,taux,op;

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

    nrNave=1;
    minZi=m;
    costNava=c;
    timpNava=t;
    timpTrecut=0;

    while(sumCur<x)
    {
        op=0;
        if(sumCur>=costNava)
        {
            timp2=(x-sumCur)/(nrNave*minZi);
            if((x-sumCur)%(nrNave*minZi) != 0)
                timp2++;
            timp1=timpNava+(x-(sumCur-costNava+timpNava*nrNave*minZi))/((nrNave+1)*minZi);
            if((x-sumCur-(nrNave*minZi)+costNava)%((nrNave+1)*minZi) != 0)
                timp1++;
            if(timp1<timp2)
            {
                sumCur+=timpNava*minZi*nrNave-costNava;
                timpTrecut+=timpNava;
                nrNave++;
                op=1;
            }
        }
        if(op==0)
        {
            sumCur+=nrNave*minZi;
            timpTrecut++;
        }
//        if(costNava-sumCur>0)
//        {
//            taux=(costNava-sumCur)/(nrNave*minZi);
//            if(taux*(nrNave*minZi) < (costNava-sumCur))
//                taux++;
//            timpTrecut+=taux;
//            sumCur+=taux*(nrNave*minZi);
//        }
    }

    fprintf(fout,"%d",timpTrecut);
    return 0;
}