#include using namespace std; #define SIZE 123456 int n; int K[SIZE], P[SIZE], Q[SIZE], tmp[SIZE]; long long int pocet = 0; void mergesort(int l, int r) { if (r-l <= 1) return; int m = (l+r)/2; mergesort(l, m); mergesort(m, r); int i = l, j = m, k = 0; while (k < r-l) { if (j < r && (i == m || K[j] < K[i])) { tmp[k++] = K[j++]; } else { tmp[k++] = K[i++]; pocet+=(r-j); } } for (int i = 0; i < r-l; i++) K[l+i] = tmp[i]; } int main() { scanf("%d", &n); int d; for (int i = 0; i < n; i++) { scanf("%d", &d); P[i] = d-1; } for (int i = 0; i < n; i++) { scanf("%d", &d); Q[d-1] = i; // Ve skutečnosti už Q^-1 } for (int i = 0; i < n; i++) K[i] = Q[P[i]]; mergesort(0, n); printf("%lld\n", pocet); return 0; }