Pagini recente » Cod sursa (job #2392108) | Cod sursa (job #284545) | Cod sursa (job #1492932) | Cod sursa (job #1253183) | Cod sursa (job #2655841)
#include <fstream>
#define ull unsigned long long
using namespace std;
int v[16004],n,k;
ifstream cin("transport.in");
ofstream cout("transport.out");
int ok(int cap){
int tr,s;
tr=s=0;
for (int i=1;i<=n;++i){
if (s+v[i]<=cap)
s+=v[i];
else{
tr++;
s=v[i];
}
}
if (s>0)
tr++;
return (tr<=k);
}
int bs(int st, int dr){
int last;
while (st<=dr){
int med=((st+dr)>>1);
if (ok(med)){
dr=med-1;
last=med;
}
else st=med+1;
}
return last;
}
int main(){
int mx=0,s=0;
cin>>n>>k;
for (int i=1;i<=n;++i){
cin>>v[i];
mx=max(mx,v[i]);
s+=v[i];
}
cout<<bs(mx,s);
}