Pagini recente » Cod sursa (job #1833386) | Cod sursa (job #900570) | Cod sursa (job #3199756) | Cod sursa (job #385373) | Cod sursa (job #1341611)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
ofstream g("transport.out");
int n, k, s, Max, i, a[16001], li, ls, m, mij, j;
int main()
{
freopen("transport.in", "r", stdin);
scanf("%d %d", &n, &k);
Max = 0;
s = 0;
for(i=1; i<=n; i++)
{
scanf("%d", &a[i]);
if(a[i] > Max)
Max = a[i];
s += a[i];
}
li = Max;
ls = s;
m = (li + ls) / 2;
while(li <= ls)
{
j = 0;
s = 0;
for(i=1; i<=n; i++)
{
if(s + a[i] > m)
{
j++;
s = a[i];
}
else
s += a[i];
}
j++;
if(j <= k)
{
mij = m;
ls = m - 1;
}
else
li = m + 1;
m = (li + ls) / 2;
}
g<<mij;
return 0;
}