#include #define rep(i,n) for (int i = 0; i < (n); i ++) using namespace std; using ll = long long; using PL = pair; using P = pair; constexpr int INF = 1000000000; constexpr long long HINF = 1000000000000000; constexpr long long MOD = 1000000007;// = 998244353; constexpr double EPS = 1e-4; constexpr double PI = 3.14159265358979; template class BinaryIndexedTree { int N; vector bit; public : BinaryIndexedTree(int _N): N(_N),bit(N + 1,0){ } void add(int i,T x) { while (i <= N) { bit[i] += x; i += (i & -i); } } T sum(int i) { T ret = 0; while (i > 0) { ret += bit[i]; i -= (i & -i); } return ret; } int lower_bound(T x) { if (x <= 0) return 0; int i = 0; int K = 1; while (2*K > N) K <<= 1; for (;K > 0; K >>= 1) { if (i + K <= N && bit[i + K] < x) { x -= bit[i + K]; i += K; } } return i + 1; } }; int main() { int N; cin >> N; vector A(N),B(N),C(N + 1); rep(i,N) cin >> A[i]; rep(i,N) cin >> B[i]; rep(i,N) C[B[i]] = i; rep(i,N) A[i] = C[A[i]]; BinaryIndexedTree bit(N); ll ans = 0; rep(i,N) { ans += i - bit.sum(A[i] + 1); bit.add(A[i] + 1,1); } cout << ans << '\n'; return 0; }