Cod sursa(job #2192422)

Utilizator mrhammerCiocan Cosmin mrhammer Data 5 aprilie 2018 21:55:14
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>


long n,k,v[16*1024];

long ver(long a)
{
    long i,p=k,s=a;
    for(i=1;i<=n && p;i++)
        if(v[i]<=s) s-=v[i];
        else {p--;s=a;i--;}
    if(i==n+1) return 1;

    return 0;

}

long cauta(long a,long b)
{
    long c;
    if(a==b) return a;
    c = (a+b)/2;
    if(ver(c)) return cauta(a,c);
    else return cauta(c+1,b);

}

int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);
    long i;
    scanf("%ld%ld",&n,&k);
    for(i=1;i<=n;i++)
        scanf("%ld",&v[i]);

    printf("%ld",cauta(1,16000*16000));



return 0;
}