Cod sursa(job #474227)

Utilizator PavelPavel Ana-Oriana Pavel Data 2 august 2010 22:56:39
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream.h>

using namespace std;

ifstream in("transport.in");
ofstream out("transport.out");

long n,k,v[16*1024];

long ver(long a)
{
	long i,p=k,s=a;
	for(i=1;i<=n && p;i++)
		if(v[i]<=s) 
			s-=v[i];
	else
	{
		p--;
		s=a;
		i--;
	}
	if(i==n+1) 
		return 1;
	return 0;
}

long cauta(long a,long b)
{
	long c;
	if(a==b) 
		return a;
	c=(a+b)/2;
	if(ver(c)) 
		return cauta(a,c);
	else 
		return cauta(c+1,b);
}

int main()
{
	long i;
	in>>n>>k;
	for(i=1;i<=n;i++)
		in>>v[i];
	out<<cauta(1,16000*16000)<<'\n';
return 0;
}