제출 #1354688

#제출 시각아이디문제언어결과실행 시간메모리
1354688AtinaRGlobal Warming (CEOI18_glo)C++20
100 / 100
67 ms3488 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n,x;
    cin>>n>>x;
    int arr[n];
    for(int i=0; i<n; i++)
    {
        cin>>arr[i];
    }
    vector<int> dp(n, INT_MAX);
    int mxx[n+1];
    int longest=0;
    for(int i=0; i<n; i++)
    {
        int it=lower_bound(dp.begin(),dp.end(),arr[i])-dp.begin();
        dp[it]=arr[i];
        mxx[i]=it+1;
        longest=max(longest,mxx[i]);
    }
    dp=vector<int>(n,INT_MAX);
    for(int i=n-1; i>=0; i--)
    {
        int it=lower_bound(dp.begin(),dp.end(),-arr[i]+x)-dp.begin();
        longest=max(longest,mxx[i]+it);
        int pos=lower_bound(dp.begin(),dp.end(),-arr[i])-dp.begin();
        dp[pos]=-arr[i];
    }
    cout<<longest<<endl;
    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...