Cod sursa(job #1358804)

Utilizator NicuCJNicu B. NicuCJ Data 24 februarie 2015 20:03:31
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <iostream>
#include <fstream>
#define D 100000000
using namespace std;

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

int n,k,sa[16005],sol;
void caut(int s,int d)
{
	int 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()
{
int i,j;
	f>>n>>k;
	for(i=1;i<=n;i++)
		f>>sa[i];
	sol=D;

	caut(1,256000000);
	g<<sol;
}