Submission #920051

#TimeUsernameProblemLanguageResultExecution timeMemory
920051Faisal_SaqibGlobal Warming (CEOI18_glo)C++17
28 / 100
2037 ms5396 KiB
#include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; const int N=2e5+100; int a[N],cpy[N],n,x; long long dp[N]; int LIS() { int ans=0; for(int i=0;i<=n;i++) dp[i]=3e9; dp[0]=-3e9; for(int i=0;i<n;i++) dp[lower_bound(dp,dp+n+1,cpy[i])-dp]=cpy[i]; for(int i=0;i<=n;i++) if(dp[i]!=3e9) ans=max(ans,i); return ans; } void reset() { for(int i=0;i<n;i++) cpy[i]=a[i]; } int main() { cin>>n>>x; for(int i=0;i<n;i++) cin>>a[i]; reset(); int ans=0; for(int i=0;i<n;i++) { cpy[i]-=x; ans=max(ans,LIS()); } reset(); for(int i=n-1;i>=0;i--) { cpy[i]+=x; ans=max(ans,LIS()); } cout<<ans<<'\n'; 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...