Pagini recente » Cod sursa (job #669) | Borderou de evaluare (job #1693670) | Cod sursa (job #1299273) | Cod sursa (job #2782916) | Cod sursa (job #2126002)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
const int N = 16001;
int n, k, sum[N];
int nrdrumuri(int x) {
int nr = 1, j = 0;
for (int i = 1; i <= n; i++) {
if (sum[i] - sum[j] > x) {
j = i - 1;
nr++;
}
}
return nr;
}
void cautbin() {
int r = 0, pas = 1 << 16;
while (pas != 0) {
if (nrdrumuri(r + pas) > k) r += pas;
pas >>= 1;
}
out << r + 1;
}
int main()
{
int x;
in >> n >> k;
for (int i = 1; i <= n; i++) {
in >> x;
sum[i] = sum[i - 1] + x;
}
cautbin();
}