#include int N, input[50001]; int aux[50001]; long long Merge(int sequence[], int left, int right){ long long inversions = 0; int middle = (left + right) / 2; int i = left; int j = middle + 1; int k = left; while(i <= middle && j <= right){ if(sequence[i] <= sequence[j]){ aux[k++] = sequence[i++]; }else{ aux[k++] = sequence[j++]; inversions += middle - i + 1; } } while(i <= middle){ aux[k++] = sequence[i++]; } while(j <= right){ aux[k++] = sequence[j++]; } for(k = left; k <= right; k++){ sequence[k] = aux[k]; } return inversions; } long long Sort(int sequence[], int left, int right){ long long inversions = 0; if(left < right){ int middle = (left + right) / 2; inversions += Sort(sequence, left, middle); inversions += Sort(sequence, middle + 1, right); inversions += Merge(sequence, left, right); } return inversions; } int main(){ scanf("%d", &N); for(int i = 1; i <= N; i++){ scanf("%d", &input[i]); } for(int i = N; i >= 1; i--){ scanf("%d", &input[i]); } printf("%d", Sort(input, 1, N)); return 0; }