Cod sursa(job #816385)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 17 noiembrie 2012 12:36:33
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
int v[16000];
int main (){
    freopen("transport.in", "r", stdin);
    freopen("transport.out", "w", stdout);
    int n,k,i,start,stop,m,max=-1,s=0,t;
    scanf("%d%d", &n,&k);
    for(i=0;i<n;i++)
    {
        scanf("%d", &v[i]);
        s+=v[i];
        if(v[i]>max) max=v[i];
    }
    start=max-1;
    stop=s+1;
    while(start<=stop)
    {
        m=(start+stop)/2;
        t=0;
        s=0;
        for(i=0;i<n;i++)
        {
            s+=v[i];
            if(s>=m)
            {
                t++;
                s=v[i];
            }
        }
        if(s) t++;
        if(t<=k)
            stop=m-1;
            else start=m+1;
    }
    printf("%d", m);
    return 0;
}