Pagini recente » Cod sursa (job #1948713) | Cod sursa (job #2555451) | Cod sursa (job #2575468) | Cod sursa (job #1428381) | Cod sursa (job #1803184)
#include <fstream>
using namespace std;
int v[16001];
int n, k;
bool verificare(int mij)
{
int s = 0, nrtransport = 1;
for (int i = 1; i <= n; ++i)
{
s = s + v[i];
if (s > mij)
{
nrtransport++;
s = v[i];
}
}
if (nrtransport <= k)
return 1;
return 0;
}
int main()
{
ifstream cin ("transport.in");
ofstream cout ("transport.out");
cin >> n >> k;
for (int i = 1; i <= n; ++i)
cin >> v[i];
int st = 0, dr = 256000000;
while (st <= dr)
{
int mij = (st + dr) / 2;
/// facem verificare
if (verificare(mij) == 0)
st = mij + 1;
else
dr = mij - 1;
}
cout << st << '\n';
return 0;
}