Cod sursa(job #718918)

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

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

const int nmax=32000;
int v[16005], i, j, k, c, n, m, s, d, vol, t, mx;

int main(){
	f>>n>>k; 
	for (i=1; i<=n; i++) {
		f>>v[i];
		if (v[i]>mx) mx=v[i];
		d+=v[i];
	}
	
	s=mx; //d=nmax;
	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;
}