Submission #867041

#TimeUsernameProblemLanguageResultExecution timeMemory
867041boris_7Global Warming (CEOI18_glo)C++17
100 / 100
48 ms5524 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; void solve(){ int n,k; cin>>n>>k; vector<int>v(n); for(int i = 0;i<n;i++){ cin>>v[i]; } vector<int>dp(n+1,1e9); vector<int>pref(n); int ans = 0; for(int i = 0;i<n;i++){ auto it = lower_bound(dp.begin(),dp.end(),v[i])-dp.begin(); dp[it]=v[i]; pref[i]=it+1; ans = max(ans,pref[i]); } dp = vector<int>(n+1,1e9); for(int i = n-1;i>=0;i--){ auto it = lower_bound(dp.begin(), dp.end(), -v[i] + k) - dp.begin(); ans = max(ans,int(it+pref[i])); it = lower_bound(dp.begin(),dp.end(),-v[i])-dp.begin(); dp[it]=-v[i]; } cout<<ans<<endl; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(nullptr); // int t;cin>>t;while(t--) solve(); }
#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...