Pagini recente » Cod sursa (job #1723052) | Cod sursa (job #565617) | Cod sursa (job #2877166) | Cod sursa (job #2367876) | Cod sursa (job #1880559)
#include<fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, k;
long long cmax = 256000000LL, v[16005];
bool check(long long rs){
long long sum=0;
int trans=1;
for(int i=1; i<=n && trans<=k+1; ++i){
if(rs-sum>=v[i]){ sum+=v[i]; }
else{ ++trans; sum = v[i];}
}
if(trans>k) return 0;
return 1;
}
long long caut(long long inc, long long sf){
long long mid = (inc + sf) / 2;
if(sf<=inc) return mid;
if(check(mid)){
caut(inc, mid);}
else caut(mid+1,sf);
}
int main(){
cin>>n>>k;
for(int i=1; i<=n; ++i) cin>>v[i];
// cout<<'\n';
// for(int i=1; i<=n; ++i) cout<<v[i]<<" ";
cout<<caut(0, cmax);
return 0;
}