排列的逆序数

来源:互联网 发布:淘宝的网络经营模式 编辑:程序博客网 时间:2024/05/16 12:33
#include<cstdio>#include<algorithm>using namespace std;long long n,f[100001],s[100001],ans;void msort(int x,int y){if(x==y) return;int m=(x+y)/2,i=x,j=m+1,k=x;msort(x,m);msort(j,y);while(i<=m&&j<=y){if(f[i]<=f[j]) s[k++]=f[i++];else s[k++]=f[j++],ans+=m-i+1;}while(i<=m) s[k++]=f[i++];while(j<=y) s[k++]=f[j++];for(int i=x;i<=y;i++) f[i]=s[i];}int main(){scanf("%lld",&n);for(int i=1;i<=n;i++)scanf("%lld",&f[i]);msort(1,n);printf("%lld",ans);}

0 0