Submission #1060424

#TimeUsernameProblemLanguageResultExecution timeMemory
1060424ali2241Global Warming (CEOI18_glo)C++17
15 / 100
2061 ms6480 KiB
#include <bits/stdc++.h>
#define int long long

using namespace std;

void fun() {
    int n, x;
    cin >> n >> x;
    int arr[n + 1];
    arr[0] = 0;
    for (int i = 1; i <= n; ++i) {
        cin >> arr[i];
    }
    int mx = 1;
    for (int i = -x; i <= +x; ++i) {
        int dp[n + 1][3];
        dp[0][0] = 0;
        dp[0][1] = 0;
        dp[0][2] = 0;
        for (int j = 1; j <= n; ++j) {
            dp[j][0] = dp[j][1] = dp[j][2] = 1;
            for (int k = 0; k < j; ++k) {
                if (arr[j] > arr[k]) {
                    dp[j][0] = max(dp[j][0], dp[k][0] + 1);
                    dp[j][1] = max(dp[j][1], dp[k][1] + 1);
                    dp[j][2] = max(dp[j][2], dp[k][2] + 1);
                }
                if (arr[j] + i > arr[k]) {
                    dp[j][1] = max(dp[j][1], dp[k][0] + 1);
                }
                if (arr[j] > arr[k] + i) {
                    dp[j][2] = max(dp[j][2], dp[k][1] + 1);
                }
            }

            mx = max(mx, max(max(dp[j][0], dp[j][1]), dp[j][2]));
        }
    }
    cout << mx << "\n";
}
 
int32_t main() {
    fun();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...