Cod sursa(job #207016)

Utilizator IrnukIrina Grosu Irnuk Data 11 septembrie 2008 11:42:10
Problema Transport Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
/*transport*/

#include<fstream.h>

 long v[16005],k,v_max,s,d;
int n;
ifstream fin("transport.in");
ofstream fout("transport.out");

void citire()
{
	int i;
	fin>>n>>k;

	for(i=0;i<n;i++)
	{
		fin>>v[i];
		s+=v[i];
		if(v[i]>v_max)
			v_max=v[i];
	}
}

int verifica()
{
	int i;
	 long sv,cont=0;

	for(i=0;i<n&& cont<k;)
	{
		sv=d;

		while(sv-v[i]>=0&&i<n&&sv!=0)
		{
			sv-=v[i];
			i++;}
		cont++;
	}
	if(i<n)
		return 0;
	else
		return 1;
}

int main()
{

	citire();

	if(s%k!=0)
		d=s/k+1;
	else
		d=s/k;

	if(d<v_max)
		d=v_max;
	
	while(verifica()==0)
		d++;
	
	fout<<d<<'\n';
	fout.close();
	return 0;
}