Pagini recente » Cod sursa (job #606757) | Cod sursa (job #1180203) | Cod sursa (job #2110621) | Cod sursa (job #2080611) | Cod sursa (job #1387258)
#include <algorithm>
#include <fstream>
#include <numeric>
#include <vector>
using namespace std;
int n, k, res;
vector<int> v;
void read()
{
ifstream fin("transport.in");
fin >> n >> k;
for (int i = 0; i < n; ++i)
{
int x; fin >> x;
v.push_back(x);
}
fin.close();
}
void write()
{
ofstream fout("transport.out");
fout << res << '\n';
fout.close();
}
void solve()
{
partial_sum(v.begin(), v.end(), v.begin());
for (int c = v.front(); c <= v.back(); ++c)
{
int offset = 0;
vector<int>::iterator it = v.begin();
for (int i = 1; i <= k; ++i)
{
it = lower_bound(it, v.end(), offset + c);
if (it == v.end())
{
res = c;
return;
}
if (*it > offset + c)
--it;
offset = *it;
}
}
}
int main()
{
read();
solve();
write();
return 0;
}