Cod sursa(job #1041703)

Utilizator hellol30FMI Macovei Daniel hellol30 Data 26 noiembrie 2013 00:06:53
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,x,max1,k,s[16004];
bool ok(int m)
{
	int a=1,j=0;
	if( s[1]==m ) j++;
	for(int i=2 ; i<=n ; i++)
		if( s[i]-s[j] > m ) a++,j=i-1;
	return (a<=k);
}

int cautbin(int s,int d)
{
	if(s==d) return s;
	else
	{
		int m=(s+d)/2;
		if( ok(m) ) return cautbin(s,m);
		 else return cautbin(m+1,d);
	}
}
int main()
{
	f>>n>>k;
	for(int i=1;i<=n;i++)
	{
		f>>x;
		s[i]=s[i-1]+x;
		if(max1<x) max1=x;		
	}
	g<<cautbin(max1,s[n]/2)<<'\n';
	return 0;
}