Submission #1358598

#TimeUsernameProblemLanguageResultExecution timeMemory
1358598waygonzGlobal Warming (CEOI18_glo)C++20
100 / 100
35 ms2628 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n, x;
    cin >> n >> x;
    vector<int> a(n), dp(n), lis(n, INT_MAX);
    for (auto &e : a) cin >> e;
    int mx = 1;
    for (int i = 0; i < n; i++) {
        int lb = lower_bound(lis.begin(), lis.end(), a[i]) - lis.begin();
        lis[lb] = a[i], dp[i] = lb + 1, mx = max(mx, dp[i]);
    }
    fill(lis.begin(), lis.end(), INT_MAX);
    for (int i = n-1; i >= 0; i--) {
        int lb = lower_bound(lis.begin(), lis.end(), -a[i] + x) - lis.begin();
        mx = max(mx, lb + dp[i]);
        lb = lower_bound(lis.begin(), lis.end(), -a[i]) - lis.begin();
        lis[lb] = -a[i];
    }
    cout << mx;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...