Pagini recente » Florian Marcu | Cod sursa (job #1681946) | Cod sursa (job #2022648) | Profil Loghin_Vlad | Cod sursa (job #502169)
Cod sursa(job #502169)
#include <stdio.h>
using namespace std;
#define pt(i) (1<<(i))
#define nmax 16005
#define inf 16001*16001
int n, k, z, rez;
int st[nmax];
int ok ( int x )
{
int i, y, j = 1;
for (i = 1; i <= k && j<n+1; ++i)
{
y = x;
while (st[j] <= y && j<n+1) { y-=st[j]; j++; }
}
if (j <= n) return 1;
return 0;
}
int main ()
{
int i;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d ", &n, &k);
for (i = 1; i <= n; ++i)
scanf("%d ", &st[i]);
z = 0;
for (i = 30; i >= 0; --i)
if (z+pt(i)<=inf && ok (z+pt(i)) )
z = z + pt(i);
printf("%d", z+1);
return 0;
}