Cod sursa(job #1138152)

Utilizator MirunaMMiruna Mitu MirunaM Data 9 martie 2014 16:58:34
Problema Transport Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
#include<iostream>
using namespace std;
int v[16001];
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int nr,k,i,s,l1,l2,cate,mij,min;
scanf("%d%d",&nr,&k);
for(i=1;i<=nr;i++){
    scanf("%d",&v[i]);
    s=s+v[i];
}
l1=1;
l2=s;
while(l1<=l2){
    s=0;
    cate=1;
    mij=(l1+l2)/2;
    for(i=1;i<=nr;i++)
        if(s+v[i]<=mij)
            s=s+v[i];
        else{
            cate++;
            s=v[i];
            }
    if(cate<=k){
        l2=mij-1;
        min=mij;
        }
    else
        l1=mij+1;
}
cout<<min;
return 0;
}