Pagini recente » Cod sursa (job #3231369) | Cod sursa (job #722256) | Cod sursa (job #2494135) | Cod sursa (job #3160078) | Cod sursa (job #479021)
Cod sursa(job #479021)
# include <fstream>
# include <cstdio>
using namespace std;
int n,k,st[16001],i,cit;
int cb_pmem (int in,int sf,int find){
int ret=0;
while (in<=sf){
int m= (in+sf) >> 1;
if (st[m]<=find){
ret=m;
in=m+1;
}
else sf=m-1;
}
return ret;
}
int corect (int m){
int cnt=k,s=0,poz=1,pac=0;
for (;cnt && poz;--cnt){
poz=cb_pmem (1,n,m+s);
s=st[poz];
pac=poz;
if (pac>=n) 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>>cit;
st[i]=st[i-1]+cit;
}
printf ("%d\n",cb (1,st[n]));
return 0;
}