Pagini recente » Cod sursa (job #1542617) | Cod sursa (job #834743) | Cod sursa (job #822907) | Cod sursa (job #272037) | Cod sursa (job #1580098)
#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-1, l = maxim;
while (r-l > 1)
{
mid = (r+l)/2;
if (verif(mid))
r = mid;
else
l = mid;
}
g << r << "\n";
return 0;
}