Cod sursa(job #718919)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 21 martie 2012 11:11:05
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.44 kb
#include <fstream>
using namespace std;

ifstream f("transport.in"); ofstream g("transport.out");

int v[16005], i, j, k, c, n, m, s, d, vol, t;

int main(){
	f>>n>>k; 
	for (i=1; i<=n; i++) {
		f>>v[i];
		if (v[i]>s) s=v[i];
		d+=v[i];
	}
	
	while (s<=d){
		m=(s+d)/2;
		t=1; vol=0;
		for (i=1; i<=n; i++){
			if (v[i]+vol>m){ t++; vol=v[i]; }
			else vol+=v[i];
		}
		if (t<=k){ c=m; d=m-1; }
		else s=m+1;
	}
	g<<c;
}