Pagini recente » Cod sursa (job #264071) | Cod sursa (job #92670) | Cod sursa (job #2351784) | Cod sursa (job #1794724) | Cod sursa (job #2277924)
#include<cstdio>
using namespace std;
int v[16001];
int nr_tr(int vol,int n){
int i,nr=1,s=0;
for(i=1;i<=n;i++){
if (s+v[i]>vol){
s=0;
nr++;
}
s+=v[i];
}
return nr;
}
int main(){
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int n,k,i,dr=0,st=0;
scanf ("%d%d",&n,&k);
for(i=1;i<=n;i++){
scanf ("%d",&v[i]);
dr+=v[i];
if (v[i]>st) st=v[i];
}
while(st<dr){
if (nr_tr((dr+st)/2,n)<=k) dr=(st+dr)/2;
else st=(dr+st)/2+1;
}
printf ("%d",st);
return 0;
}