제출 #1277169

#제출 시각아이디문제언어결과실행 시간메모리
1277169zhaoxwGlobal Warming (CEOI18_glo)C++20
100 / 100
84 ms3184 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; if(!b.empty()) ans = max(ans,p[i]+pos+1); 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...