Pagini recente » Cod sursa (job #331059) | Cod sursa (job #1897343) | Cod sursa (job #1080404) | Cod sursa (job #2132303) | Cod sursa (job #2083499)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
const int N = 16001;
int v[N], n, k;
bool sepoate(int c)
{
int i, temp = 0, cc = 0, nr = 0;
for (i = 0; i < n; i++)
{
if (v[i] > c)
return false;
if (v[i] > cc){
nr++;
cc = c;
}
cc -= v[i];
}
return (nr <= k);
}
int main()
{
int pas = 1 << 27, r = 0, i;
f >> n >> k;
for (i = 0; i < n; i++)
f >> v[i];
while (pas != 0){
if (!sepoate(r + pas)){
r += pas;
}
pas /= 2;
}
r++;
g << r;
return 0;
}