제출 #1306064

#제출 시각아이디문제언어결과실행 시간메모리
1306064NipphitchGlobal Warming (CEOI18_glo)C++20
100 / 100
43 ms6640 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int N=2e5+5;

int a[N],pf[N];

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n,x;
    cin >> n >> x;
    for(int i=0;i<n;i++) cin >> a[i];
    vector <int> dp(n,INT_MAX);
    int ans=0;
    for(int i=0;i<n;i++){
        int j=lower_bound(dp.begin(),dp.end(),a[i])-dp.begin();
        dp[j]=a[i];
        pf[i]=j+1;
        ans=max(ans,pf[i]);
    }
    dp=vector <int>(n,INT_MAX);
    for(int i=n-1;i>=0;i--){
        int pos=lower_bound(dp.begin(),dp.end(),-a[i]+x)-dp.begin();
        ans=max(ans,pf[i]+pos);
        int ip=lower_bound(dp.begin(),dp.end(),-a[i])-dp.begin();
        dp[ip]=-a[i];
    }
    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...