Cod sursa(job #2796854)
Utilizator | Data | 8 noiembrie 2021 21:31:53 | |
---|---|---|---|
Problema | Transport | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <bits/stdc++.h>
using namespace std;
int n,k,a[16005];
int howMany(int x) {
int tr=1, s=0;
for(int i=1; i<=n; i++){
if(s+a[i]<=x){
s+=a[i];
}
else{
tr++;
s=a[i];
}
}
return tr;
}
int main(){
cin >> n >> k;
for(int i=1; i<=n; i++){
cin >> a[i];
}
long long left=1, right=16000*16000,sol=0;
while(left<=right){
long long mid = (left+right)/2;
if(howMany(mid)<=k){
sol=mid;
right=mid-1;
}
else{
left=mid+1;
}
}
cout << sol;
return 0;
}