这是一份全WA码:
#include<bits/stdc++.h>
using namespace std;
int n,a[1000010],b[1000010];
long long ans;
void mid_sort(int l,int r){
if(l==r) return;
int mid=l+r>>1;
mid_sort(l,mid),mid_sort(mid+1,r);
int top=0,i=l,j=mid+1;
while(i<=mid && j<=r){
if(a[i]>a[j]){
ans+=mid-i+1;
b[++top]=a[++j];
}
else b[++top]=a[++i];
}
while(i<=mid) b[++top]=a[++i];
while(j<=r) b[++top]=a[++j];
for(int k=l;k<=r;k++) a[k]=b[k-l+1];
}
int main(){
cin>>n;
for(int i=n;i>=1;i--) cin>>a[i];
mid_sort(1,n);
cout<<ans;
return 0;
}
请各位务必留意 ++i 和 i++ 的区别。