代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=3e6+10;
int arr[N],tmp[N];
long long ans;
void msort(int l,int r){
if(l>=r)return ;
int mid=(l+r)/2;
msort(l,mid);
msort(mid+1,r);
int i=l,j=mid+1,k=l;
while(i<=mid && j<=r){
if(arr[i]<arr[j]) ans+=r-j+1,tmp[k++]=arr[i++];
else tmp[k++]=arr[j++];
}
if(i<=mid) tmp[k++]=arr[i++];
if(j<=r) tmp[k++]=arr[j++];
for(int ii=l;ii<=r;ii++){
arr[ii]=tmp[ii];
}
return ;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
msort(1,n);
cout<<ans;
return 0;
}