Pagini recente » Cod sursa (job #1044975) | Cod sursa (job #591712) | Cod sursa (job #1479073) | Cod sursa (job #2168769) | Cod sursa (job #2091121)
#include <cstdio>
using namespace std;
int n, k,a[16005];
long long NR=268435456;
int verif(long long x)
{
int nr=0;
int i=1;
while(i<=n)
{
long long s=0;
if(s+a[i]<=x && i<=n)
{
while(s+a[i]<=x && i<=n)
{
s+=a[i];
i++;
}
}
else
i++;
nr++;
}
if(nr<=k)
return 1;
return 0;
}
long long caut_bin(long long lg)
{
long long i;
for(i=NR;lg!=0;lg>>=1)
{
if(i-lg>=0 && verif(i-lg)==1)
i-=lg;
}
return i;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d", &n, &k);
for(int i=1;i<=n;i++)
{
scanf("%d", &a[i]);
}
printf("%lld",caut_bin(NR));
return 0;
}