Cod sursa(job #3312690)

Utilizator drsbosDarius Scripcaru drsbos Data 29 septembrie 2025 15:30:22
Problema Transport Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <stack>
#include <queue>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <set>
#include <cstring>
#include <map>
#include <string>
#include <bitset>
#include <unordered_map>
#include <unordered_set>
#define oo 2000000
#define MOD 1000000007
using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");

int a[16005];
int n, k;
bool verif(int mij)
{
	int cnt = 1,sum=0;
	for (int i = 1; i <= n; i++)
	{
		if (sum+a[i] <= mij)
		{
			sum += a[i];
		}
		else
		{
			sum = a[i];
			cnt++;
		}
	}
	if (cnt <= k)return 1;
	return 0;
}
int main()
{
	fin >> n>>k;
	for (int i = 1; i <= n; i++)
		fin >> a[i];
	int st = 1, dr = 2560000, mij,rez;
	while (st <= dr)
	{
		int mij = (st + dr) / 2;
		if (verif(mij))
		{
			dr = mij - 1;
			rez = mij;
		}
		else st = mij + 1;


	}
	fout << rez;
	


}