#include <iostream>
#include <vector>
#include <array>
using namespace std;
bool check(vector<int> &pref, int m, int k) {
for (int i = m; i < pref.size(); ++i) {
if (pref[i] - pref[i - m] == k) {
return true;
}
}
return false;
}
int best_path(int n, int k, int h[][2], int* len) {
vector<int> w(len, len + n - 1);
vector<int> pref(n);
for (int i = 1; i<n; ++i) {
pref[i] = pref[i - 1] + w[i - 1];
}
int l = 0, r = n;
while (l + 1 < r) {
int m = (l + r)/2;
if (check(pref, m, k)) {
r = m;
} else {
l = m;
}
}
return (r == n ? -1 : r);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |