Submission #1213380

#TimeUsernameProblemLanguageResultExecution timeMemory
1213380ttamxExam (eJOI20_exam)C++20
0 / 100
1 ms328 KiB
#include<bits/stdc++.h> using namespace std; const int N=100005; int n; int a[N],b[N],c[N*2],pos[N*2]; struct Fenwick{ int t[N]; void update(int i,int v){ for(;i<=n;i+=i&-i)t[i]=max(t[i],v); } int query(int i){ int res=0; for(;i>0;i-=i&-i)res=max(res,t[i]); return res; } }f; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n; for(int i=1;i<=n;i++){ cin >> a[i]; c[i]=a[i]; } for(int i=1;i<=n;i++){ cin >> b[i]; if(b[i]<a[i])b[i]=0; c[i+n]=b[i]; } for(int i=1;i<=n;i++)a[i]=lower_bound(c+1,c+2*n+1,a[i])-c; for(int i=1;i<=n;i++)b[i]=lower_bound(c+1,c+2*n+1,b[i])-c; for(int i=1;i<=n;i++)pos[a[i]]=i; for(int i=1;i<=n;i++){ int p=pos[b[i]]; if(p)f.update(p,f.query(p)+1); } cout << f.query(n); }
#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...