代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=500005;
int n;
int a[N],b[N],c[N];
#define lowbit(x) x&(-x)
void update(int p){
while(p>=n){
c[p]++;
p+=lowbit(p);
}
}
int getsum(int x){
int sum=0;
while(x>=1){
sum+=c[x];
x-=lowbit(x);
}
return sum;
}
bool cmp(int x,int y){
if(a[x]==a[y]) return x>y;
return a[x]>a[y];
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=i;
}
sort(b+1,b+n+1,cmp);
long long ans=0;
for(int i=1;i<=n;i++){
update(b[i]);
ans+=getsum(b[i]-1);
}
cout<<ans;
return 0;
}