Cod sursa(job #354769)

Utilizator nightwish0031Vlad Radu Cristian nightwish0031 Data 9 octombrie 2009 13:19:09
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<cstdio>
#define NMAX (1<<16)

int x[NMAX],k,n;

int tr(int cam,int n)
{
	int i,nc=0,nr=0;
	for (i=1;i<=n;++i)
	{
		if (nc+x[i]<cam)
			nc+=x[i];
		else
			{nr++;nc=x[i];}
	}
	if (nr<=k) return 1;
	return 0;
}

int cb()
{
	int i,pas=(1<<30);
	
	
	for (i=0;pas;pas>>=1)
		if (tr(i+pas,n)==0)
			i+=pas;
	return i+1;
	
	
}

int main()
{
	int i;
	
	freopen("transport.in","r",stdin);
	freopen("transport.out","w",stdout);
	
	scanf("%d%d",&n,&k);
	for (i=1;i<=n;i++)
		scanf("%d",&x[i]);
	printf("%d",cb());
	return 0;
}