Cod sursa(job #1848701)

Utilizator bobotheslayerBogdan Zaharia bobotheslayer Data 16 ianuarie 2017 15:29:28
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include <iostream>
#include <cstdio>

int v[16001];
int main()
{
    FILE *intrare,*iesire;
    int n,transport,i,x,max=-1,copiemax=0,copietr=0,num=0;
    bool ok=true;
    intrare=fopen("transport.in","r");
    iesire=fopen("transport.out","w");
    fscanf(intrare,"%d%d",&n,&transport);
    for (i=0; i<=n-1; ++i)
    {
        fscanf(intrare,"%d",&v[i]);
    }

    for (i=0; i<=n-1; ++i)
    {
        if (v[i]>max)
            max=v[i];
    }
    copiemax=max;
    copietr=transport;
    while (ok==true)
    {
        num++;
        for (i=0; i<=n-1; ++i)
        {
            if (max-v[i]==0)
            {
                if (max==copiemax)
                    --transport;
                else
                {
                    max=max-v[i];
                }
            }
            else
            {
                if (max-v[i]>0)
                {
                    if (max==copiemax)
                        --transport;
                    max=max-v[i];
                }
                else
                {
                    if (max-v[i]<0)
                    {
                        max=copiemax;
                        --transport;
                        max=max-v[i];
                    }
                }
            }
        }
        if (transport<0)
        {
            copiemax++;
            max=copiemax;
            transport=copietr;
        }
        else
        {
            ok=false;
        }
    }
    fprintf(iesire,"%d",copiemax);
}