Submission #1243223

#TimeUsernameProblemLanguageResultExecution timeMemory
1243223datluong_04Global Warming (CEOI18_glo)C++20
0 / 100
34 ms6468 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define FOR(i , a , b) for(int i = a ; i <= b ; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define maxn 200005
#define REVERSE(i , a , b) for(int i = a; i  >= b; i--)

ll a[maxn] , b[maxn] , c[maxn];

int l[maxn] , r[maxn];

int main(){
    FAST;
    int n;
    ll x;
    cin >> n >> x;
    FOR(i , 1 , n) cin >> a[i];
    FOR(i , 1 , n) b[i] = LLONG_MAX;

    int ans = 0;
    FOR(i , 1 , n){
        int k = lower_bound(b + 1 , b + n + 1, a[i]) - b;
        b[k] = a[i];
        l[i] = k;
    }

    FOR(i , 1 , n) b[i] = LLONG_MAX;

    FOR(i , 1 , n) c[i] = a[n - i + 1];

    FOR(i , 1 , n){
        int k = lower_bound(b + 1 , b + n + 1, c[i] + x) - b;
        b[k] = c[i] + x;
        r[n - i + 1] = k;
    }

    FOR(i , 1 , n) ans = max(ans , l[i] + r[i] - 1);
    cout << ans;
}
#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...