#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,a[1111111],t[1111111],ans;
void gbpx(int l,int r)
{
if(l==r) return;
int mid=(l+r)/2;
gbpx(l,mid);
gbpx(mid+1,r);
int tega=l,q=l,h=mid+1;
while(q<=mid&&h<=r)
{
if(a[q]<=a[h])
{
t[tega]=a[q];
tega++;
q++;
}
else
{
t[tega]=a[h];
tega++;
h++;
ans+=(mid-q+1);
}
}
while(q<=mid)
{
t[tega]=a[q];
tega++;
q++;
}
while(h<=r)
{
t[tega]=a[h];
tega++;
h++;
}
for(int i=l;i<=r;i++)
{
a[i]=t[i];
}
}
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
ans=0;
gbpx(1,n);
printf("%d\n",ans);
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交