Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>using namespace std;int InversePairsCore(int *data,int *copy,int start,int end){if (start == end){copy[start] = data[start];return 0;}int length = (end - start)/2;int left_c = InversePairsCore(copy,data,start,start+length);int right_c = InversePairsCore(copy,data,start+length+1,end);int i = start + length;int j = end;int index_copy = end;int count = 0;while (i>=start && j>=start+length+1){if (data[i] > data[j]){copy[index_copy--] = data[i--];count += j - (start+length);}else