提交时间:2024-03-09 09:20:42

运行 ID: 136421

#include<iostream> using namespace std; const int N=1e4; int ans=0,a[N],n,b[N]; void mergesort(int l,int r){ int mid=l+r>>1; if(l==r){ return ; } mergesort(l,mid); mergesort(mid+1,r); for(int i=l;i<=r;i++) b[i]=a[i]; int i=l,j=mid+1; while(i<=mid&&j<=r){ if(b[i]>b[j]){ ans+=mid-i+1; a[l++]=b[j++]; }else{ a[l++]=b[i++]; } } while(i<=mid){ a[l++]=b[i++]; }while(j<=r){ a[l++]=b[j++]; } } signed main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; mergesort(1,n); cout<<ans; return 0; }