大佬降临,给喜欢“抄”的同志们“抄亿抄”
#include <bits/stdc++.h>
using namespace std;
int num[300000];
int tmp[300000];
long long merge(int l, int r){
if (l+1==r)
return 0;
int m=(l+r)/2;
long long res=merge(l, m)+merge(m, r);
for (int i=l,j=m,k=l;k<r;k++){
if (j==r||(i<m&&num[i]>num[j])){
tmp[k]=num[i];
i++;
}else{
tmp[k]=num[j];
j++;
res+=m-i;
}
}
for (int k=l;k<r;k++)
num[k]=tmp[k];
return res;
}
int main()
{
int n=0;
cin>>n;
for (int i=0;i<n;i++)
cin>>num[i];
cout<<merge(0, n)<<endl;
return 0;
}
//3340
题目描述
输入
输出
样例输入
4 2 1 3 0
样例输出
2
提示
样例解释 1