Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
136420 zhangyang 求逆序对数 C++ 解答错误 25 0 MS 272 KB 554 2024-03-09 09:19:30

Tests(2/8):


#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; }


测评信息: