Submission #1277167

#TimeUsernameProblemLanguageResultExecution timeMemory
1277167zhaoxwGlobal Warming (CEOI18_glo)C++20
0 / 100
94 ms1976 KiB
#include<bits/stdc++.h> using namespace std; const int MAX_N = 200005; int a[MAX_N],p[MAX_N],n,x,ans; vector<int> dp,b; int main() { cin >> n >> x; for(int i = 1;i <= n;i++) cin >> a[i]; for(int i = n;i >= 1;i--) { auto it = lower_bound(dp.begin(),dp.end(),a[i],greater<int>()); int cnt = it-dp.begin(); if(cnt == dp.size()) dp.push_back(a[i]); else dp[cnt] = a[i]; p[i] = cnt+1; } for(int i = 1;i <= n;i++) { int pos = lower_bound(b.begin(),b.end(),a[i]+x)-b.begin()+1; ans = max(p[i],p[i]+pos); auto it = lower_bound(b.begin(),b.end(),a[i]); int cnt = it-b.begin(); if(cnt == b.size()) b.push_back(a[i]); else b[cnt] = a[i]; } cout << ans << '\n'; //for(int i = 1;i <= n;i++) // cout << p[i] << ' '; 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...