Pagini recente » Cod sursa (job #3175970) | Cod sursa (job #1306761) | Cod sursa (job #914203) | Cod sursa (job #1778810) | Cod sursa (job #505350)
Cod sursa(job #505350)
#include <stdio.h>
int a[16001], n, s, i, max, min, mij, min1, nr, k, max1;
int main(){
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
scanf ("%d%d",&n,&k); min1=99999;
for (i=1;i<=n;i++){
scanf ("%d",&a[i]);
s=s+a[i];
if (a[i]>max1) max1=a[i];}
max=s; min=max1;
while (min<=max){
mij=(min+max)/2;
nr=0; s=0;
/*for (i=1;i<=n;i++){
s=s+a[i];
if (s>mij){nr++; s=a[i];}}*/
for(i=1;i<=n; ){
s=0;
while(s+a[i]<=mij&&i<=n){
s+=a[i];i++;
}
nr++;}
if (nr>k){min=mij+1;}
if (nr<=k){ min1=mij; max=mij-1;}}
printf ("%d",min1);
return (0);
}
/*
for(i=1;i<=n; ){
s=0;
while(s+v[i]<=mij&&i<=n){
s+=a[i];i++;
}
nr++;
*/