Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>const int MAXM = 100000 + 10;long long ans;int num[MAXM];void merge(const int head, const int tail){int* tmp = new int[tail - head + 1];int mid = head + (tail - head)/2;int i = head, j = mid + 1;int k = 0;while(i <= mid && j <= tail){if(num[i] <= num[j]){tmp[k++] = num[i++];}else{ans += mid - i + 1;tmp[k++] = num[j++];}}while(i <= mid){tmp[k++] = num[i++];}while(j <= tail)