# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
651181 | bicsi | Fire (JOI20_ho_t5) | C++14 | 467 ms | 31004 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, q; cin >> n >> q;
vector<int> v(n);
for (int i = 0; i < n; ++i) cin >> v[i];
vector<int> len[2];
for (int rev = 0; rev < 2; ++rev) {
vector<int> stk = {-1};
for (int i = 0; i < n; ++i) {
while (stk.size() > 1 && v[i] + rev > v[stk.back()])
stk.pop_back();
len[rev].push_back(i - stk.back());
stk.push_back(i);
}
reverse(v.begin(), v.end());
}
reverse(len[1].begin(), len[1].end());
int t = 0;
auto get_range = [&](int i) {
int l = len[0][i] > i ? i : i + max(0, t - len[0][i] + 1);
int r = i + min(t + 1, len[1][i]);
return make_pair(l, r);
Compilation message (stderr)
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |