class Solution {
public:
int InversePairs(vector<int> data) {
int len = data.size();
if (len <= 1)
{
return 0;
}
map<int,int> mm;
int tem;
for (int k = len -1;k > 0; --k)
{
bool done = 1;
for(int i = 0 ;i < k ; ++i)
{
if(data[i] > data[i+1])
{
done = 0;
if(mm.count(data[i])==0)
{
mm[data[i]] = 1;
}
else
{
++mm[data[i]];
}
tem = data[i];
data[i] = data[i+1];
data[i+1] = tem;
}
}
if(done)
{
break;
}
}
int sum = 0;
for (map<int,int>::iterator it = mm.begin();it != mm.end() ; ++ it)
{
sum += it->second;
}
return sum;
}
};