Submission #1221502

#TimeUsernameProblemLanguageResultExecution timeMemory
1221502sam230609Global Warming (CEOI18_glo)C++20
100 / 100
77 ms3400 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int t[200005],p[200005],INF=1e9; int main(){ int n,x,ans=0; cin >>n>>x; for(int i=0;i<n;i++) cin >>t[i]; vector<int> dp(n,INF); for(int i=0;i<n;i++){ int j=lower_bound(dp.begin(),dp.end(),t[i])-dp.begin(); dp[j]=t[i]; p[i]=j+1; ans=max(ans,p[i]); }dp=vector<int>(n,INF); for(int i=n-1;i>=0;i--){ int pos=lower_bound(dp.begin(),dp.end(),x-t[i])-dp.begin(); ans=max(ans,p[i]+pos); pos=lower_bound(dp.begin(),dp.end(),-t[i])-dp.begin(); dp[pos]=-t[i]; }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...