Pagini recente » Cod sursa (job #3281442) | Cod sursa (job #489781) | Cod sursa (job #1103438) | Cod sursa (job #2424885) | Cod sursa (job #2091122)
#include <cstdio>
using namespace std;
int n, k,a[16005],vmax;
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>=vmax && 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]);
if(a[i]>vmax)
vmax=a[i];
}
printf("%lld",caut_bin(NR));
return 0;
}