Pagini recente » Cod sursa (job #2861937) | Cod sursa (job #879063) | Cod sursa (job #2482260) | Cod sursa (job #674469) | Cod sursa (job #1580094)
#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];
maxim = max(maxim, a[i]);
}
l = s-1, r = maxim+1;
while (r-l > 1)
{
mid = (r+l)/2;
if (verif(mid))
r = mid;
else
l = mid;
}
g << r;
return 0;
}