Cod sursa(job #2891906)

Utilizator cyg_TheoPruteanu Theodor cyg_Theo Data 20 aprilie 2022 06:52:18
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

typedef long long ll;
const int NMAX = 2e5+5;

int v[NMAX];

void solve(){

	int n, k;
	scanf("%d %d", &n, &k);

	for(int i=0; i<n; ++i)
		scanf("%d", &v[i]);

	int l=0, r=k*n;

	while(l<r){
		int m = (l+r)/2;

		v[n] = m;
		int cnt = 0, sum = 0;
		for(int i=0; i<=n; ++i){
			sum += v[i];
			if(sum > m)
				cnt++, sum=v[i];
		}

		if(cnt <= k)
			r = m;
		else
			l = m+1;
	}

	printf("%d\n", l);
}

int main(){

	int t = 1;

	for(int i=0; i<t; ++i)
		solve();

	return 0;
}