Cod sursa(job #3294215)

Utilizator mihai.25Calin Mihai mihai.25 Data 19 aprilie 2025 15:51:03
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

ifstream fin ("transport.in");

ofstream fout ("transport.out");

int caut_bin (int v[], int n, int k) {

	int val = 0, st = 1, dr = 16000 * 16000;

	while (st <= dr) {

		int mij = st + (dr - st) / 2;

		int cnt = 1, sum = 0;

		for (int i = 1; i <= n; ++i) {

			if (sum + v[i] <= mij)
				sum += v[i];
			else {

				sum = v[i];

				cnt++;
			}
		}

		if (cnt <= k) {

			val = mij;

			dr = mij - 1;
		}
		else
			st = mij + 1;
	}

	return val;
}

int main () {

	int n, k;

	fin >> n >> k;

	int v[n + 1];

	for (int i = 1; i <= n; ++i)
		fin >> v[i];

	fout << caut_bin (v, n, k);

	return 0;
}