Submission #1214664

#TimeUsernameProblemLanguageResultExecution timeMemory
1214664BulaGlobal Warming (CEOI18_glo)C++20
100 / 100
42 ms2760 KiB
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7, N = 2e5 + 5;
main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int tt = 1; //cin >> tt;
    while(tt--){
        int n, x;
        cin >> n >> x;
        vector<int> a(n + 1);
        for(int i = 1; i <= n; i++) cin >> a[i];
        int ans = 0;
        vector<int> dp(n + 1, 1e9), p(n + 1);
        for(int i = 1; i <= n; i++){
            int j = lower_bound(dp.begin() + 1, dp.end(), a[i] - x) - dp.begin();
            dp[j] = a[i] - x; p[i] = j;
            ans = max(ans, j);
        }
        for(int i = 1; i <= n; i++) dp[i] = 1e9;
        reverse(a.begin() + 1, a.end());
        for(int i = 1; i <= n; i++){
            int j = lower_bound(dp.begin() + 1, dp.end(), -(a[i] - x)) - dp.begin();
            ans = max(ans, p[n - i + 1] + j - 1);
            j = lower_bound(dp.begin() + 1, dp.end(), -a[i]) - dp.begin();
            dp[j] = -a[i];
        }
        cout << ans << '\n';
    }
}

Compilation message (stderr)

glo.cpp:4:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    4 | main(){
      | ^~~~
#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...