Cod sursa(job #1358827)

Utilizator traian.vidrascutraian vidrascu traian.vidrascu Data 24 februarie 2015 20:08:46
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
#define D 100000000
using namespace std;

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

long long n,k,sa[16005],sol;
void caut(long long s,long long d)
{
	long long i,j,mij,sum,t;
	if(s>d)
		return;
	mij=(s+d)/2;
	sum=0;
	t=0;
	for(i=1;i<=n;i++)
	{
		sum=sum+sa[i];
		if(sum>mij)
		{
			sum=sa[i];
			t++;
		}
	}
	t++;
	if(t<=k)
	{
		if(sol>mij)
			sol=mij;
		caut(s,mij-1);
	}
	else caut(mij+1,d);
		
}
int main()
{
long long i,j;
	f>>n>>k;
	for(i=1;i<=n;i++)
		f>>sa[i];
	sol=D;

	caut(1LL,999999999999LL);
	g<<sol;
}