Pagini recente » Cod sursa (job #228770) | Cod sursa (job #607431) | Cod sursa (job #1033367) | Cod sursa (job #2100239) | Cod sursa (job #391668)
Cod sursa(job #391668)
#include <cstdio>
#define NMAX 16005
#define VOLMAX 16005
int N,K;
int e[NMAX];
void citire()
{
scanf("%d%d",&N,&K);
for(int i=1;i<=N;i++)
scanf("%d",&e[i]);
}
int ok(int x)
{
int a=0,p=1;
for(int i=1;i<=N;i++)
{
if(e[i]>x)
return 0;
if(a+e[i]<=x)
a+=e[i];
else
a=e[i],p++;
}
if(p<=K)
return 1;
return 0;
}
int cautare_binara()
{
int p=1,a=0;
while((p<<1)<=VOLMAX)
p<<=1;
while(p)
{
if(!ok(a+p))
a+=p;
p>>=1;
}
return a+1;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
citire();
printf("%d",cautare_binara());
return 0;
}