Cod sursa(job #816381)

Utilizator irinaneaguIrina Neagu irinaneagu Data 17 noiembrie 2012 12:36:17
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
int v[16001];
int main ()
{freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int i,j,capmin=0,capmax=0,n,k;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++){
    scanf("%d",&v[i]);
    if(v[i]>capmin)
        capmin=v[i];
    capmax+=v[i];}
l1=capmin-1;
l2=capmax+1;
while(l1<=l2){
    m=(l1+l2)/2;
    for(i=1;i<=n;i++){
        s+=v[i];
        if(s>=m){
            nr++;
            s=0;}
    }
    if(nr>=k)
        l2=m-1;
    else
        l1=m+1;
    nr=0;
}
printf("%d",m);
return 0;
}