Cod sursa(job #262673)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 19 februarie 2009 16:12:03
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
//#include<algorithm>
//using namespace std;
#define INF 10000001
#include<stdio.h>
int n,k,a[16001];
void solve(){
    int i,s,m,st,dr,cont;
    scanf("%d%d",&n,&k);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    for(st=1,dr=INF; st<=dr; ){
		m=(st+dr)/2;
		for(i=cont=1,s=0; i<=n; ++i)
			if(s+a[i]<=m)
				s+=a[i];
			else{
				++cont;
				s=a[i];}
		if(cont<=k)
			dr=m-1;
		else
			st=m+1;}
	printf("%d",m);}
int main(){
	freopen("transport.in","r",stdin);
	freopen("transport.out","w",stdout);
    solve();
    return 0;}