Cod sursa(job #943899)

Utilizator predatorGigi Valoare predator Data 26 aprilie 2013 19:02:16
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int cap,i,j,n,k,mi,v[17000],ma,sol;
int check(int x);
int main ()
{
	f>>n>>k;
	for(i=1;i<=n;++i)
	{
		f>>v[i];
		if(v[i]>mi)
			mi=v[i];
		ma+=v[i];
	}
	while(mi<=ma)
	{
		int m=(mi+ma)>>1;
		if(!check(m))
			mi=m+1;
		else
			ma=m-1,sol=m;
	}
	g<<sol;
	return 0;
}
int check(int x)
{
	i=j=0;
	while(i<=k&&j<=n)
	{
		cap=0;
		while(cap+v[j]<=x)
			cap+=v[j],j++;
	}
	if(i<=k)
		return 1;
	return 0;
}