제출 #736387

#제출 시각아이디문제언어결과실행 시간메모리
736387studyGlobal Warming (CEOI18_glo)C++17
100 / 100
63 ms8624 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

const int N = 2e5, inf = 2e9+1;

int a[N], best[N];

int32_t main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n,d;
    cin >> n >> d;
    for (int i=0; i<n; ++i){
        cin >> a[i];
    }
    vector<int> dp(N,inf);
    for (int i=0; i<n; ++i){
        best[i] = lower_bound(dp.begin(),dp.end(),a[i]+d)-dp.begin()+1;
        int pos = lower_bound(dp.begin(),dp.end(),a[i])-dp.begin();
        dp[pos] = a[i];
    }
    dp = vector<int>(N,inf);
    int ans = 0;
    for (int i=n-1; i>=0; --i){
        int lds = lower_bound(dp.begin(),dp.end(),-a[i]-d)-dp.begin();
        ans = max(ans,best[i]+lds);
        dp[lds] = -a[i]-d;
    }
    cout << ans;
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...