Cod sursa(job #1037635)

Utilizator myshuSpatariu Mihai-Constantin myshu Data 20 noiembrie 2013 15:35:17
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
using namespace std;
int v[16001],k,n;
int binara(int stg, int dr)
{
	int m=(stg+dr)/2,s=0,i,k2=0;
	for(i=1;i<=n;i++)
		{while(s+v[i]<m){s=s+v[i];i++;}
		k2++;s=v[i];}
	if(k2>k)return binara(m,dr);
	else if(k2<k)return binara(stg,m);
	else {while(k2==k)
			{k=0;m--;s=0;
			 for(i=1;i<=n;i++)
				{while(s+v[i]<m){s=s+v[i];i++;}
				k2++;s=v[i];}
			}
		  return m+1;}
}
int main()
{
	ifstream fcin("transport.in");
	ofstream fcout("transport.out");
	int i;
	fcin>>n>>k;
	for(i=1;i<=n;i++)
		{fcin>>v[i];v[0]=v[0]+v[i];}
	fcout<<binara(1,v[0])<<'\n';
	return 0;
}