Cod sursa(job #1113242)

Utilizator andrei_fl97Andrei Florea andrei_fl97 Data 20 februarie 2014 14:50:31
Problema Transport Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
using namespace std;
int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);
    int n,k,v[16001],m=0,ok=1,c,i,j,s=0;
    scanf ("%d%d",&n,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
        if(v[i]>m)m=v[i];
        s=s+v[i];
    }
    s=s/k;
    v[n+1]=-1;
    i=1;
    if(s>m)m=s;
    while(ok==1)
    {
        j=1;
        for(i=1;i<=k;i++)
        {
            c=m;
            while(c>=0)
            {
                if(v[j]==-1)ok=0;
                else
                if(j>n)break;
                else
                if(c-v[j]>=0)
                j++;
                c=c-v[j-1];
            }
        }
        if(ok==0)
        printf("%d",m);
        else m++;
    }
    return 0;
}