Pagini recente » Cod sursa (job #1995020) | Cod sursa (job #316760) | Cod sursa (job #1740727) | Cod sursa (job #1834513) | Cod sursa (job #2088871)
#include <cstdio>
using namespace std;
int lg;
int n, k, a[16001];
int numarare(int x)
{
int nr=1,s=0;
for(int i=1; i<=n; i++)
{
s+=a[i];
if(s>=x)
{
nr++;
s=0;
}
}
if(nr==k)
return 1;
return 0;
}
long long cautbin(long long lg, long long vmin)
{
long long i, s=0;;
for(i=100000000000000000;lg!=0;lg>>=1)
if(i-lg>vmin)
{
i-=lg;
if(numarare(i)==1)
s=i;
}
return s;
}
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d %d", &n, &k);
long long vmin=-1;
for(int i=1; i<=n; i++)
{
scanf("%d", &a[i]);
if(a[i]>vmin)
vmin=a[i];
}
long long lg;
lg=1ll<<62;
printf("%lld",cautbin(lg,vmin));
return 0;
}