Cod sursa(job #1912861)

Utilizator virtualityBbbbbbbbbbbbbbbbbb virtuality Data 8 martie 2017 10:58:52
Problema Transport Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<bits/stdc++.h>
using namespace std;
const int N = 16020;
int n, a[N], k;
int check(int c){
	int i=1;
	for(int k1=1; i<=n && k1<=k; k1++){
		int c1=c;
		while(c1-a[i]>=0 && i<=n){
			c1-=a[i];
			i++;
		}
	}
	return(i==n+1);
}
int main(){
	freopen("transport.in", "r", stdin);
	freopen("transport.out", "w", stdout);
	scanf("%d%d", &n, &k);
	for(int i=1;i<=n;i++) scanf("%d", &a[i]);
	int st=1, dr=17000, m;
	while(st<=dr){
		m=(st+dr)/2;
		if(check(m)) dr=m-1; else st=m+1;
	}
	if(check(m)) m--;
	if(!check(m)) m++;
	cout<<st;
	return 0;
}