#include <iostream> #include <cstring> #include <algorithm> #define N 100010 using namespace std; int c[N],n; int aa[N]; struct Node { int orde,value; }a[N]; int cmp(Node a,Node b) { return a.value<b.value; } int low_bit(int x) { return x&(x^(x-1)); } void update(int x,int y) { for(int i=x;i<=n;i+=low_bit(i)) c[i]+=y; } int Sum(int x) { int sum=0; for(int i=x;i>0;i-=low_bit(i)) sum+=c[i]; return sum; } int main() { int x; cin>>n; //离散化 for(int i=1;i<=n;i++) { a[i].orde=i; cin>>a[i].value; } sort(a,a+n+1,cmp); int ans=0; memset(c,0,sizeof(c)); for(int i=1;i<=n;i++) { aa[a[i].orde]=i; } for(int i=1;i<=n;i++) { update(aa[i],1); ans+=i-Sum(aa[i]); } cout<<ans<<endl; return 0; } /* 5 9 1 0 5 4 */