#include<bits/stdc++.h>
using namespace std;
int a[300005],b[300005];
int n;
long long mg(int l,int r){
if(l+1==r) return 0;
int mid=(l+r)/2,res=mg(l,mid)+mg(mid+1,r);
int i=l,j=mid,k=l;
for(;k<r;k++){
if(j==r||(i<mid&&a[i]>a[j])){
b[k]=a[i];
i++;
}
else{
b[k]=a[j];
j++;
res+=mid-i;
}
for(int k=l;k<r;k++) a[i]=b[i];
}
return res;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cout<<mg(1,n);
}
me用归并做的,为何0分!!!
请各位大佬帮助~