Pagini recente » Cod sursa (job #471496) | Cod sursa (job #552811) | Cod sursa (job #2138724) | Cod sursa (job #3278841) | Cod sursa (job #262717)
Cod sursa(job #262717)
#include<algorithm>
using namespace std;
int n,k,a[16001];
void solve(){
int i,s,m,st,dr,min,max,cont;
scanf("%d%d",&n,&k);
for(i=1,max=s=0; i<=n; ++i){
scanf("%d",&a[i]);
if(a[i]>max)
max=a[i];
s+=a[i];}
for(st=max,dr=s; st<=dr; ){
m=(st+dr)/2;
for(i=cont=1,s=0; i<=n; ++i)
if(s+a[i]<=m)
s+=a[i];
else{
++cont;
s=a[i];}
if(cont>k)
st=m+1;
else{
min=m;
dr=m-1;}}
printf("%d",min);}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
solve();
return 0;}