ABC 336
Table of Contents
D - Pyramid
https://atcoder.jp/contests/abc336/tasks/abc336_d
解説 AC.
void solve() {
ll N;
cin >> N;
vll A(N);
rep(i, N) cin >> A[i];
A.push_back(0);
A.insert(A.begin(), 0);
N += 2;
vll dl(N, 0), dr(N, 0);
rep2(i, 1, N) {
dl[i] = min(dl[i - 1] + 1, A[i]);
}
rep(i, N - 1) {
int k = N - 1 - i;
dr[k - 1] = min(dr[k] + 1, A[k - 1]);
}
ll ans = 0;
rep(i, N) {
chmax(ans, min(dr[i], dl[i]));
}
cout << ans << endl;
}