Pagini recente » Cod sursa (job #728641) | Cod sursa (job #2626641) | Cod sursa (job #371537) | Cod sursa (job #2873319) | Cod sursa (job #341965)
Cod sursa(job #341965)
#include <iostream>
using namespace std;
#define MAXN 16001
int sum,n,m,v[MAXN],lo,hi,ans;
bool ok(int a){
int tmp=0,cnt=1;
for (int i=0;i<n;i++){
if (tmp+v[i]<=a){
tmp+=v[i];
}
else {
tmp=v[i];
cnt++;
if (cnt>m) return 0;
}
}
return 1;
}
void open(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
}
int main(){
open();
scanf("%d %d",&n,&m);
sum=0;
lo=0;
for (int i=0;i<n;i++){
scanf("%d",&v[i]);
lo=max(v[i],lo);
sum+=v[i];
}
hi=sum;
while (1){
int mid=(lo+hi)/2;
if (ok(mid)){
ans=mid;
hi=mid-1;
}
else lo=mid+1;
if (lo>hi) break;
}
printf("%d\n",ans);
//system("pause");
return 0;
}