Cod sursa(job #1417979)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 11 aprilie 2015 16:43:29
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>

using namespace std;
int p=0,u,mj,i,n,k,x,a[16005];

inline int trans(int x)
{
    int i,nr=x+1,k=0;

    for(i=1;i<=n;++i)
    if(nr+a[i]<=x) nr+=a[i];
    else ++k, nr=a[i];
    return k;
}
int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);

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

    for(i=1;i<=n;++i)
    {
        scanf("%d",&a[i]);
        p=a[i]>p?a[i]:p;
    }

    u=16000*16000;
    while(p<=u)
    {
        mj=(p+u)>>1;
        x=trans(mj);

        if(x<=k) u=mj-1;
        else p=mj+1;
    }
    printf("%d\n",u+1);
    return 0;
}