Pagini recente » Cod sursa (job #128716) | Monitorul de evaluare | Cod sursa (job #130809) | Cod sursa (job #3357545) | Cod sursa (job #3358053)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
const int nmax = 16e3 + 5;
int n, k, v[nmax];
bool check (int x)
{
int cnt = 1, s = 0;
for (int i = 1; i <= n; i++)
{
if (s + v[i] > x)
{
cnt++;
s = 0;
}
s += v[i];
}
return cnt > k;
}
int cb ()
{
int origin = 0;
for (int bit = 1 << 27; bit; bit >>= 1)
{
if (check (origin + bit))
origin += bit;
}
return origin + 1;
}
int main ()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> v[i];
fout << cb();
return 0;
}