Cod sursa(job #750297)

Utilizator bogdan353Costea Bogdan bogdan353 Data 21 mai 2012 20:36:54
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;

#define nmax 16002

int x[nmax],n,k,maxi=-3;
long long  suma=0;

ofstream g("transport.out");

int ajunge(int nr)
{
	int su=0,ka=0;
	for(int i=1;i<=n;i++)
	{
		su=su+x[i];
		if(su>nr)
		{
			su=x[i];
			ka++;
		}
			
	}
	ka++;
	
	if(ka>k) return 0;
	return 1;
	
	
}
		
			





int caut_bin()
{
	int m;
	int st=maxi;
	int dr=suma;
	while(st<=dr)
	{
		m=(st+dr)/2;
		if(ajunge(m))
			dr=m-1;
		else st=m+1;
	}
	
		return m;
	
}

int main()
{
	ifstream f("transport.in");
	
	
	f>>n>>k;
	
	
	
	for(int i=1;i<=n;i++)
	{
		f>>x[i];
		suma=suma+x[i];
		if(x[i]>maxi)
			maxi=x[i];
	}
	
	
	g<<caut_bin();
}