제출 #1274850

#제출 시각아이디문제언어결과실행 시간메모리
1274850warrennGlobal Warming (CEOI18_glo)C++20
100 / 100
112 ms4676 KiB
#include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int n,x; cin>>n>>x; int t[n+1]; int lis[n+1]; for(int q=1;q<=n;q++){ cin>>t[q]; } vector<int>tmp; for(int q=1;q<=n;q++){ int idx=lower_bound(tmp.begin(),tmp.end(),t[q])-tmp.begin(); if(idx==tmp.size()){ lis[q]=tmp.size()+1; tmp.push_back(t[q]); } else{ lis[q]=idx+1; tmp[idx]=t[q]; } } int ans=0; tmp.clear(); for(int q=n;q>=1;q--){ int idx=lower_bound(tmp.begin(),tmp.end(),x-t[q])-tmp.begin(); ans=max(ans,lis[q]+idx); ans=max(ans,lis[q]); idx=lower_bound(tmp.begin(),tmp.end(),-t[q])-tmp.begin(); if(idx==tmp.size()){ tmp.push_back(-t[q]); } else{ tmp[idx]=-t[q]; } } cout<<ans<<endl; }
#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...