Pagini recente » Rating Maria Teodora (Maria_Teodora) | Cod sursa (job #1731112) | Cod sursa (job #1410195) | Istoria paginii runda/3103 | Cod sursa (job #2552044)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, v[16005], i, j, mij;
bool verificare(int nr)
{
int i = 1;
int a = nr;
int ap = 1;
for (; v[i]; i ++)
{
if (v[i] <= a)
{
a -= v[i];
}
else
{
a = nr - v[i];
ap ++;
}
}
//cout << (bool)(ap <= k) << " " << nr << endl;
return (bool)(ap <= k);
}
int main()
{
fin >> n >> k;
for (i = 1; i <= n; i ++)
{
fin >> v[i];
}
i = 1;
j = 160000;
while (i < j)
{
mij = (i + j) / 2;
if (verificare(mij))
j = mij - 1;
else
i = mij + 1;
}
if (verificare(mij))
fout << mij;
//cout << endl << endl;
//for (i = 1; i <= n; i ++)
//cout << v[i] << " ";
else
{
while (!verificare(mij))
mij ++;
fout << mij;
}
return 0;
}