Cod sursa(job #1038352)

Utilizator RaduStefanFMI - Radu Stefan RaduStefan Data 21 noiembrie 2013 13:19:11
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
using namespace std;
int v[16001],rez,n,k;

int verif(int m)
{
	int i,s=0,a=k;
	for(i=1;i<=n;i++)
	{
		s+=v[i];
		if(s==m)
		{
			a--;
			s=0;
		}
		else if(s>m)
		{
			a--;
			i--;
			s=0;
		}
		if(a==0 && i==n)return 1;
		else if ( a==0 ) return 0;
	}
	return 1;
}

void bin2()
{
	int poz=0;
	long long pas=(1<<28);
	while(pas>0)
	{
			if(verif(poz+pas))rez=poz+pas;
				else poz+=pas;
		pas>>=1;
	}
}

int main()
{
	int i;
	ifstream fcin("transport.in");
	ofstream fcout("transport.out");
	fcin>>n>>k;
	for(i=1;i<=n;i++)
		fcin>>v[i];
	bin2();
	if(n==0)fcout<<0;
	else
		fcout<<rez;
	return 0;
}