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