Cod sursa(job #2350490)

Utilizator IoanStoicaStoica Ioan IoanStoica Data 21 februarie 2019 14:20:20
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <iostream>
#include <fstream>
#define D 16003
using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");
long long n, k, i, ct, sum, a, b,s,d, v[D], mij;
bool cond(int val)
{
	sum = 0;
	ct = 1;
	for (i = 1; i <= n; i++)
		if (sum + v[i] <= val)
			sum += v[i];
		else
			sum = v[i], ct++;
	return ct <= k;
}

int main()
{
	f >> n >> k;
	for (i = 1; i <= n; i++)
		f>> v[i];
	s = 1;
	d = D * D;
	while (s <= d)
	{
		mij = (s + d) / 2;//cout<<s<<" "<<d<<" "<<mij<<endl;
		if (cond(mij))
			d = mij - 1;
		else
			s = mij + 1;
	}cout<<s<<"\n";
	g << s << "\n";
}