Cod sursa(job #724539)

Utilizator robertpoeRobert Poenaru robertpoe Data 26 martie 2012 17:14:55
Problema Transport Scor 100
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");
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;
	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;
	return 0;
}