Pagini recente » Cod sursa (job #2019788) | Cod sursa (job #14555) | Cod sursa (job #2263218) | Cod sursa (job #653441) | Cod sursa (job #2923087)
#include <fstream>
using namespace std;
int v[16000], n, k;
bool solutie(int c) {
int i, cnt, camion;
camion = cnt = 0;
for (i = 0; i < n; i++) {
camion += v[i];
if (camion > c) {
camion = v[i];
cnt++;
}
}
cnt++;
return cnt <= k;
}
int cautare(int st, int dr) {
if (st == dr)
return solutie(st) == true ? st : -1;
int mij = (st + dr)/2;
if (solutie(mij))
return cautare(st, mij);
return cautare(mij + 1, dr);
}
int main()
{
ios_base::sync_with_stdio(false);
ifstream fin("transport.in");
ofstream fout("transport.out");
int i, s;
fin >> n >> k;
for (i = 0; i < n; i++) {
fin >> v[i];
s += v[i];
}
fout << cautare(1, s);
return 0;
}