Pagini recente » Cod sursa (job #1097213) | Cod sursa (job #814268) | Cod sursa (job #1739355) | Cod sursa (job #2956439) | Cod sursa (job #479029)
Cod sursa(job #479029)
# include <fstream>
# include <cstdio>
using namespace std;
int n,k,st[16001],i,cit,suma;
int corect (int m){
int i,cnt=k,s=0,poz=1,pac=0,pp=0;
i=1;
while (i<=n && pp<=k){
s+=st[i];
if (st[i]>m) return 0;
if (s>=m){
++pp;s=0;
}
else ++i;
}
if (pp<=k) return 1;
return 0;
}
int cb (int in,int sf){
int ret=0;
while (in<=sf){
int m= (in+sf) >> 1 , var;
var=corect (m);
if (var){//cauti unul mai mic si mai corect
ret=m;
sf=m-1;
}
else//daca e 0
in=m+1;
}
return ret;
}
int main (){
ifstream f ("transport.in");
freopen ("transport.out","w",stdout);
f>>n>>k;
for (i=1;i<=n;++i){
f>>st[i];
suma+=st[i];
}
printf ("%d\n",cb (1,suma));
return 0;
}