Pagini recente » Cod sursa (job #2927053) | Cod sursa (job #459166) | Cod sursa (job #1377539) | Cod sursa (job #2769022) | Cod sursa (job #2350490)
#include <iostream>
#include <fstream>
#define D 16003
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long long n, k, i, ct, sum, a, b,s,d, v[D], mij;
bool cond(int val)
{
sum = 0;
ct = 1;
for (i = 1; i <= n; i++)
if (sum + v[i] <= val)
sum += v[i];
else
sum = v[i], ct++;
return ct <= k;
}
int main()
{
f >> n >> k;
for (i = 1; i <= n; i++)
f>> v[i];
s = 1;
d = D * D;
while (s <= d)
{
mij = (s + d) / 2;//cout<<s<<" "<<d<<" "<<mij<<endl;
if (cond(mij))
d = mij - 1;
else
s = mij + 1;
}cout<<s<<"\n";
g << s << "\n";
}