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;
#define for_(i, s, e) for (int i = s; i < (int) e; i++)
#define for__(i, s, e) for (ll i = s; i < e; i++)
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> ii;
#define endl '\n'
const int MXN = 5e5;
int h[MXN+1], pref[MXN+1], suf[MXN+1];
int main() {
#ifdef shiven
freopen("test.in", "r", stdin);
#endif
ios_base::sync_with_stdio(false);
cin.tie(0);
int n; cin >> n;
for_(i, 0, n) {
cin >> h[i];
pref[i] = suf[i] = h[i];
}
vi pt;
for_(i, 0, n) {
if (i*i+1 < n) pt.push_back(i*i+1);
else break;
}
int mx = -1;
for_(i, 0, n) if (h[i] > mx) {
mx = h[i];
for_(k, 0, pt.size()) {
if (i+pt[k] < n) pref[i+pt[k]] = max(pref[i+pt[k]], h[i]+k+1);
else break;
}
}
mx = -1;
for (int i = n-1; i >= 0; i--) if (h[i] > mx) {
mx = h[i];
for_(k, 0, pt.size()) {
if (i-pt[k] >= 0) suf[i-pt[k]] = max(suf[i-pt[k]], h[i]+k+1);
else break;
}
}
for_(i, 1, n) pref[i] = max(pref[i], pref[i-1]);
for (int i = n-2; i >= 0; i--) suf[i] = max(suf[i], suf[i+1]);
for_(i, 0, n) cout << max(pref[i], suf[i]) - h[i] << endl;
return 0;
}
# | 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... |
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |