Cod sursa(job #784890)

Utilizator miron_dorin95Miron Dorin miron_dorin95 Data 7 septembrie 2012 11:35:02
Problema Transport Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include <iostream>
using namespace std;
int x[16000];
int bun(int n, int m)
{
	int i,c=0,max=0;
	for(i=1;i<n;i++)
	{
		if (max+x[i]<=m)
			max+=x[i];
		else
		{
			max=x[i];
			c++;
		}
	}
	if(max+x[n]>m)
		c+=2;
	else
		c++;
	return c;
}

int main ()
{
	ifstream f("transport.in");
	int n,i,k,max=0,m=0,c=0;
	f>>n;
	f>>k;
	for(i=1;i<=n;i++)
	{
		f>>x[i];
		m+=x[i];
		if(x[i]>max)
			max=x[i];
	}
	m/=k;
	if(max>m)
		m=max;
	
	while (bun(n,m)>k)
		m++;
	ofstream g("transport.out");
	g<<m;
	return 0;
}