Cod sursa(job #1068505)

Utilizator OctaDuiu Octavian Octa Data 28 decembrie 2013 13:52:53
Problema Transport Scor 100
Compilator cpp Status done
Runda prega_28_dec Marime 0.63 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,T;
int v[16001];
int main()
{
    freopen("transport.in","r",stdin);freopen("transport.out","w",stdout);

    scanf("%d %d",&n,&T);

    int i,Max=0;
    for(i=1;i<=n;++i)
    {
        scanf("%d",&v[i]);
        if(v[i]>Max) Max=v[i];
    }

    int y=16000*16000;
    int mi,S,x;
    while(Max<y)
    {
        S=0; x=1;
        mi=(y+Max)/2;
        for (i=1;i<=n;++i)
            if (S+v[i]<=mi) S+=v[i];
                else        S=v[i],++x;

        if (x>T) Max=mi+1;
            else y=mi;
    }

  printf("%d",Max);
    return 0;
}