Pagini recente » Cod sursa (job #609825) | Cod sursa (job #2916238) | Cod sursa (job #1104659) | Cod sursa (job #1208371) | Cod sursa (job #185693)
Cod sursa(job #185693)
#include<stdio.h>
#define NMAX 16000
#define FIN "transport.in"
#define FOUT "transport.out"
int main(){
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
int n,nrtr,k,i,v[NMAX],c,j,s=0,vmax=0,sp,ma,gata;
scanf("%d%d",&n,&nrtr);
for(i=0;i<n;i++) {
scanf("%d",&v[i]);
if(v[i]>vmax) vmax=v[i];
s+=v[i];
}
ma=s/nrtr;
if(ma*nrtr<s) ma++;
if(nrtr==1) c=s;
else if(nrtr>=n) c=vmax;
else{
if(ma>vmax) vmax=ma;
gata=1;
for(c=vmax;;c++){
k=0;
i=0;
j=0;
while(i<n){
sp=0;
while(j<n&&sp<c) {sp+=v[j];j++;}
if(sp>c) j--;
k++;
if(k>nrtr) break;
i=j;
}
if(k<=nrtr) break;
}
}
printf("%d",c);
return 0;
}