Pagini recente » Cod sursa (job #412229) | Cod sursa (job #412278) | Cod sursa (job #3193187) | Cod sursa (job #1992727) | Cod sursa (job #3254111)
#include <iostream>
using namespace std;
int v[16001];
int main()
{
int st, dr, k, n, i, s = 1, sol, mij, maxi = 0, nrt;
cin >> n >> k;
for (i = 1; i<=n; i++)
{
cin >> v[i];
if (v[i] > maxi)
maxi = v[i];
}
st = maxi;
dr = s;
sol = -1;
while (st <= dr)
{
mij = (st + dr) / 2;
s = 0;
nrt = 1;
for (i = 1; i<=n; i++)
{
if (s + v[i] <= mij)
{
s += v[i];
}
else
{
nrt++;
s = v[i];
}
}
if (nrt > k)
{
st = mij + 1;
}
else
{
sol = mij;
dr = mij - 1;
}
}
cout << sol;
return 0;
}
//6 3
//7 maxi = 7 dr = 7 st = 1
//3
//2
//3
//1
//4