Submission #1161547

#TimeUsernameProblemLanguageResultExecution timeMemory
1161547PikachudoraEHEGlobal Warming (CEOI18_glo)C++20
0 / 100
30 ms3012 KiB
#include<bits/stdc++.h> using namespace std; const int N =2e5+5; vector<int>a(N),mem,mem2; vector<int>memreal(N); map<int,int>m; int main(){ ios_base::sync_with_stdio(0);cin.tie(0); int n,x;cin>>n>>x; for(int i=1;i<=n;i++){ cin>>a[i]; if(mem.empty()){ mem.push_back(a[i]-x); memreal[i]=1; continue; } auto itr = lower_bound(mem.begin(),mem.end(),a[i]-x); if(itr==mem.end()){ mem.push_back(a[i]-x); memreal[i]=mem.size(); } else{ *(itr)=a[i]-x; memreal[i]=itr-mem.begin()+1; } } int ans = mem.size(); for(int i=n;i>=1;i--){ if(mem2.empty()){ mem2.push_back(-a[i]); } else { auto itr2 = lower_bound(mem2.begin(),mem2.end(),-memreal[i]); int idx = itr2-mem2.begin(); ans=max(ans,idx+memreal[i]); auto itr = lower_bound(mem2.begin(),mem2.end(),-a[i]); if(itr==mem2.end()){ mem2.push_back(-a[i]); } else{ *(itr)=-a[i]; } } } 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...