Pagini recente » Cod sursa (job #1968310) | Cod sursa (job #51472) | Cod sursa (job #1643533) | Cod sursa (job #2520461) | Cod sursa (job #1749838)
#include<fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k,aux,rs = 2000000000,dr,st,a[16050],piv,aux1;
int main(){
cin >> n >> k;
for(int i = 0; i<n; i++){
cin >> a[i];
st = max(a[i],st);
dr+=a[i];
}
while(st <= dr){
piv = (st+dr)/2;
aux = 0;
aux1 = 1;
for(int i = 0; i < n; i++){
if (aux + a[i] >piv){
aux = a[i];
aux1++;
}else{
aux += a[i];
}
}
if (aux1 <= k){
rs = min (rs, piv);
dr = piv - 1;
}
else st = piv + 1;
}
cout << rs;
}