Cod sursa(job #1319680)

Utilizator tgm000Tudor Mocioi tgm000 Data 17 ianuarie 2015 12:32:17
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<cstdio>
int v[16001];
int main(){
	int n,k,ls,ld,i,mij,t,s;
	freopen("transport.in","r",stdin);
	freopen("transport.out","w",stdout);
	scanf("%d%d",&n,&k);
	ls=ld=0;
	for(i=1;i<=n;i++){
		scanf("%d",&v[i]);
		if(v[i]>ls)
			ls=v[i];
		ld+=v[i];
	}
	while(ls<ld){
		mij=ls+(ld-ls)/2;
		t=0;
		for(i=1;i<=n;){
			s=0;
			while(s+v[i]<=mij&&i<=n){
				s+=v[i];
				i++;
			}
			t++;
		}
		if(t<=k)
			ld=mij-1;
		else
			ls=mij+1;
	}
	printf("%d",ls);
	return 0;
}