Pagini recente » Cod sursa (job #444123) | Cod sursa (job #1675217) | Cod sursa (job #1549434) | Cod sursa (job #2959185) | Cod sursa (job #677871)
Cod sursa(job #677871)
#include <cstdio>
using namespace std;
const int nmax=16005;
int sol,a[nmax],sum,n,k;
void read()
{ int i;
freopen("transport.in","r",stdin); scanf("%d %d\n",&n,&k);
for(i=1;i<=n;++i)
{ scanf("%d\n",&a[i]); sum+=a[i]; }
fclose(stdin);
}
void binary_search()
{ int st,dr,mij,nr,s,i;
st=0; dr=sum;
while(st<=dr)
{
mij=(st+dr)/2;
nr=0; s=0;
for(i=1;i<=n;++i)
{
s+=a[i];
if(s>mij){ ++nr; s=a[i]; }
}
++nr;
if(nr<=k){
sol=mij;
dr=mij-1;
}
else st=mij+1;
}
}
int main()
{
sum=0;
read();
sol=0;
binary_search();
freopen("transport.out","w",stdout); printf("%d",sol); fclose(stdout);
return 0;
}