Submission #969374

#TimeUsernameProblemLanguageResultExecution timeMemory
969374ttamxGlobal Warming (CEOI18_glo)C++17
100 / 100
52 ms4308 KiB
#include<bits/stdc++.h> using namespace std; const int N=2e5+5; int n,x; int a[N],dp[N]; vector<int> v1,v2; int ans; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> x; for(int i=1;i<=n;i++)cin >> a[i]; for(int i=1;i<=n;i++){ auto it=lower_bound(v1.begin(),v1.end(),a[i]); dp[i]=it-v1.begin()+1; if(it==v1.end())v1.emplace_back(a[i]); else *it=a[i]; } for(int i=n;i>=1;i--){ auto it=lower_bound(v2.begin(),v2.end(),-a[i]); ans=max(ans,dp[i]+int(it-v2.begin())); a[i]+=x; it=lower_bound(v2.begin(),v2.end(),-a[i]); if(it==v2.end())v2.emplace_back(-a[i]); else *it=-a[i]; } 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...