#include using namespace std; typedef long long LL; const int SZ=400000; int n, ar[200004], br[200004], ap[400004], bp[400004]; LL ans; struct Tree { int t[SZ*4], lz[SZ*4]; void propagate(int num, int s, int e){ if(lz[num]) t[num]=0; else{ if(s!=e) t[num]=t[num*2]+t[num*2+1]; else t[num]=1; } } void update(int l, int r, int d, int num=1, int s=1, int e=SZ){ if(eb) swap(a, b); tr.update(a+1, b, d); } void solve() { int i; for(i=1; i<=n; i++){ tr.update(i, i, 0); } for(i=1; i<=n; i++){ Query(ar[i], -1); ap[ar[i]]=i; Query(ar[i], 1); Query(br[i], -1); bp[br[i]]=i; Query(br[i], 1); ans+=tr.get_sum(1, i); } } int main() { int i; scanf("%d", &n); for(i=1; i<=n; i++){ scanf("%d", &ar[i]); } for(i=1; i<=n; i++){ scanf("%d", &br[i]); } solve(); printf("%lld\n", ans); return 0; }