Pagini recente » Cod sursa (job #3214687) | Cod sursa (job #2755462) | Cod sursa (job #1943021) | oji2007 | Cod sursa (job #481000)
Cod sursa(job #481000)
#include<stdio.h>
#define nmax 16010
int n,k,v[nmax],bun;
long s1,s2;
void read()
{
int i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
{
scanf("%d",&v[i]);
if(s1<v[i]) s1=v[i];
s2+=v[i];
}
}
int verif(int m)
{
int i,p=1;
long s=0;
bun=0;
for(i=1;i<=n;++i)
{
s+=v[i];
if(s>m)
{
s=v[i];
p++;
}
else
if(s==m)
{
s=0;if(i!=n)p++;
bun=1;
}
}
return p;
}
void rez()
{
long st,dr,m,s,nr;
st=s1;dr=s2;
while(st<=dr)
{
m=(st+dr)/2;
s=verif(m);
if(s<k) {dr=m-1;}
if(s==k) {if(bun) nr=m; dr=m-1;}
if(s>k) {st=m+1;}
}
printf("%ld\n",nr);
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
read();
rez();
return 0;
}