제출 #1235611

#제출 시각아이디문제언어결과실행 시간메모리
1235611AishaMaxcomp (info1cup18_maxcomp)C++20
0 / 100
0 ms324 KiB
#include "bits/stdc++.h"

using namespace std;

#define int long long

int sol(vector <int> a) {
    int m = a.size();

    vector <int> p(m + 1);
    vector <int> s(m + 1);
    int ans = -1; 

    p[1] = a[1] + 1;
    s[m] = a[m] + m;
    for (int i = 2; i <= m; i ++) p[i] = max(a[i] + i, p[i - 1]);
    for (int i = m - 1; i >= 1; i --) s[i] = min(s[i + 1], a[i] + i);
    
    for (int i = 1; i <= m; i ++) {
        ans = max(ans, p[i] - s[i] - 1);
    }

    return ans;
}

signed main() {
    int n, m;
    cin >> n >> m;

    vector <int> a(m + 1);
    for (int i = 1; i <= m; i ++) cin >> a[i];

    int ans = sol(a);
    reverse(a.begin(), a.end());
    for (int i = m; i >= 1; i --) a[i] = a[i - 1];
    ans = max(ans, sol(a));

    cout << ans << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...