Pagini recente » Cod sursa (job #2208570) | Cod sursa (job #1512533) | Cod sursa (job #1708719) | Cod sursa (job #1620216) | Cod sursa (job #1580100)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n, k, a[16001], i, s;
int maxim, l, mid, r;
bool verif(int x)
{
int i, s, z = 0;
for (i = 1; i <= n;)
{
s = 0;
while (s+a[i] <= x)
s += a[i], i++;
z++;
}
if (z <= k)
return 1;
return 0;
}
int main()
{
f >> n >> k;
for (i = 1; i <= n; i++)
{
f >> a[i];
s += a[i];
if (maxim < a[i])
maxim = a[i];
}
r = s, l = maxim;
while (r-l > 1)
{
mid = (r+l)/2;
if (verif(mid) == 1)
r = mid;
else
l = mid;
}
g << r << "\n";
return 0;
}