Pagini recente » Cod sursa (job #2034872) | Cod sursa (job #1927232) | Cod sursa (job #626829) | Cod sursa (job #2914483) | Cod sursa (job #1068853)
# include <cstdio>
# define NMax 16001
using namespace std;
int n, i, s, k, v[NMax], j, m;
bool verif(int m)
{
int i=1, p, nr=0, j, s;
while (i <= n)
{
s = 0;
for (j=i; j<=n; ++j)
{
s += v[j];
if (s > m) break;
}
p = j-1;
if (p < i) return false;
else ++nr, i = p+1;
}
if (nr <= k) return true;
else return false;
}
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out","w", stdout);
scanf("%d%d", &n, &k);
for (i=1; i<=n; ++i)
scanf("%d", &v[i]), s += v[i];
i = 1; j = s;
while (i <= j)
{
m = (i+j) >> 1;
if (verif(m)) j = m-1;
else i = m+1;
}
printf("%d\n", j+1);
return 0;
}