int n; int a[MAX_N]; int b[MAX_N]; long long ans; void Merge_Sort(int lt, int rt) { if(lt == rt) return; int mid = lt + rt >> 1; Merge_Sort(lt, mid); Merge_Sort(mid + 1, rt); int i = lt, j = mid + 1; int cnt = 0; while(i <= mid && j <= rt) { if(a[i] <= a[j]) b[++cnt] = a[i++]; else ans += mid - i + 1, b[++cnt] = a[j++]; } while(i <= mid) b[++cnt] = a[i++]; while(j <= rt) b[++cnt] = a[j++]; for(register int i = lt; i <= rt; ++i) { a[i] = b[i - lt + 1]; } return; }