Cod sursa(job #1071286)

Utilizator L.DanielLungu Daniel L.Daniel Data 2 ianuarie 2014 20:59:46
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
using namespace std;

int main()
{
	int n, k, max = 0, sum = 0, i, st, dr, a[16007], nr, mij;
	ifstream f("transport.in");
	ofstream g("transport.out");
	f >> n >> k;
	for (i = 1; i <= n; i++)
	{
		f >> a[i];
		if (a[i] > max)max = a[i];
		sum += a[i];
	}
	st = max;
	dr = sum;
	while (st < dr)
	{
		mij = (st + dr) / 2;
		nr = 1;
		sum = 0;
		for (i = 1; i <= n; ++i)
		if (sum + a[i] <= mij)sum += a[i];
		else sum = a[i], ++nr;
		if (k < nr) st = mij + 1;
		else  dr = mij;

	}
	g << st;
	return 0;
}