Cod sursa(job #718892)

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

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

const int nmax=16;
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];
	}
	
	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;
}