Submission #1187254

#TimeUsernameProblemLanguageResultExecution timeMemory
1187254dirtycodeheheGlobal Warming (CEOI18_glo)C++20
0 / 100
69 ms3396 KiB
#include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int n,x; cin>>n>>x; vector<int> a(n); for(int i=0;i<n;++i){ cin>>a[i]; } vector<int> v; vector<int> pre(n); for(int i=0;i<n;++i){ if(v.empty()||a[i]>v.back()){ v.push_back(a[i]); } else { int pos=lower_bound(v.begin(),v.end(),a[i])-v.begin(); pre[i]=pos+1; v[pos]=a[i]; } } v.clear(); int ans=0; // giảm dần dài nhất for(int i=n-1;i>=0;--i){ if(v.empty()||v.back()>a[i]){ v.push_back(a[i]); } else { *--upper_bound(v.rbegin(),v.rend(),a[i])=a[i]; } if(i==0){ ans=max(ans,(int)v.size()); } else { ans=max(ans,pre[i-1]+(int)v.size()-(upper_bound(v.rbegin(),v.rend(),a[i]-x)-v.rbegin())); } } 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...