Pagini recente » Cod sursa (job #617411) | Cod sursa (job #2937660) | Cod sursa (job #670009) | Cod sursa (job #1011345) | Cod sursa (job #642149)
Cod sursa(job #642149)
# include <cstdio>
using namespace std;
int a[16005];
int k, n, max, sum, rez, cap;
int ok(int val)
{
int s = 0, i, ct = 1;
for (i = 1; i <= n; i++)
if (a[i] + s <= val) s += a[i];
else { ct++; s = a[i];}
if (ct <= k) return 1;
else 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",&a[i]);
if (a[i] > max) max = a[i];
sum += a[i];
}
while (max <= sum)
{
cap = (max + sum) / 2;
if (ok(cap)) {rez = cap; sum = cap - 1;}
else max = cap + 1;
}
printf("%d", rez);
return 0;
}