제출 #783662

#제출 시각아이디문제언어결과실행 시간메모리
7836628pete8Global Warming (CEOI18_glo)C++14
42 / 100
46 ms6884 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define f first #define s second #define pb push_back #define p push #define pii pair<int,int> #define ppii pair<int,pii> #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #define set(x) memset(x,-1,sizeof(x)); #define int long long const int mxn=1e9; int n,x; int32_t main(){ fastio cin>>n>>x; vector<int>v(n); for(int i=0;i<n;i++)cin>>v[i]; vector<int>lis,dp(n); for(int i=0;i<n;i++){ int k; if(lis.empty()||lis.back()<v[i])lis.pb(v[i]),k=lis.size(); else{ auto it=lower_bound(lis.begin(),lis.end(),v[i]); (*it)=v[i]; k=it-lis.begin()+1; } dp[i]=k; } vector<int>lis2; int ans=0; for(int i=n-1;i>=0;i--){ int k; if(lis2.empty()||lis2.back()>v[i])k=lis2.size()+1; else{ auto it=lower_bound(lis2.rbegin(),lis2.rend(),v[i]); k=lis2.rbegin()-it; } ans=max(ans,dp[i]+k-1); if(lis2.empty()||lis2.back()>v[i]+x)lis2.pb(v[i]+x); else{ auto it=upper_bound(lis2.rbegin(),lis2.rend(),v[i]+x); it--; (*it)=v[i]+x; } } 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...