Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>using namespace std;class Solution {public:long long reverseCount;public:Solution(){reverseCount =0;}int * divConSort(int *ivec, int n) {if(n<=1) {int *tp = new int(ivec[0]);return tp;}int i=0;int j=0;int * ip =divConSort(ivec,n/2);int * jp =divConSort(ivec+n/2,n-n/2);int *tp = new int[n];while(i<n/2 && j<n-n/2){if(*ip>*jp){*tp++ = *jp++;++j;reverseCount += (n/2-i);}else{*tp++ = *ip++;++i;}}if(i == n/2)while(j<n-n/2) {*tp++ = *jp++;++j;}else if(j==n-n/2)while(i<n/2) {*tp++ = *ip++; ++i;}