제출 #1185753

#제출 시각아이디문제언어결과실행 시간메모리
1185753WarinchaiGlobal Warming (CEOI18_glo)C++20
100 / 100
37 ms3272 KiB
#include<bits/stdc++.h>
using namespace std;
int ar[200005];
int l[200005],r[200005];
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,x;cin>>n>>x;
    for(int i=1;i<=n;i++)cin>>ar[i];
    vector<int>v;
    for(int i=1;i<=n;i++){
        int id=lower_bound(v.begin(),v.end(),ar[i])-v.begin();
        l[i]=id+1;
        if(id==v.size())v.push_back(ar[i]);
        else v[id]=ar[i];
    }
    v.clear();
    for(int i=n;i>=1;i--){
        //cerr<<"qr:"<<-ar[i]+x<<"\n";
        int id=lower_bound(v.begin(),v.end(),-ar[i]+x)-v.begin();
        r[i]=id+1;
        id=lower_bound(v.begin(),v.end(),-ar[i])-v.begin();
        if(id==v.size())v.push_back(-ar[i]);
        else v[id]=-ar[i];
        //for(auto x:v)cerr<<x<<" ";
        //cerr<<"\n";
    }
    int ans=0;
    for(int i=1;i<=n;i++)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...