Cod sursa(job #854622)

Utilizator cristi23ciulica cristian cristi23 Data 13 ianuarie 2013 19:50:28
Problema Transport Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
int s,m,c,nrt,n,i,ls,ld,k,s1,x[16001];
ifstream f("transport.in");
ofstream g("transport.out");
int main(){
	int max,min;
	f>>n>>k;
    max=0;
    s=0;
    min=16000;
    for(i=1;i<=n;i++){
        f>>x[i];
        if(x[i]>max)
            max=x[i];
        s1=s1+x[i];
    }
    ls=0;
    ld=s1+1;
    while(ls<=ld){
        m=(ls+ld)/2;
        s=0;
        c=0;
        nrt=1;
        for(i=1;i<=n;i++)
            if((s+x[i])>m){
                nrt++;
                s=x[i];
            }
            else
                s=s+x[i];
        if(nrt<=k){
           ld=m-1;
           c=m;
        }
        else
            ls=m+1;
    }
    if(c<max)
        c=max;
    if(c>s1)
        c=s1;
    g<<c;
    return 0;
}