#define PROBLEM \
"https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_5_D"
#include<bits/stdc++.h>#include"library/util/InversionNumber.hpp"intmain(){intn;std::cin>>n;std::vector<int>v(n);for(inti=0;i<n;i++)std::cin>>v[i];std::cout<<inversion_number(v)<<std::endl;}
#line 1 "test/AOJ/ALDS1_5_D.test.cpp"
#define PROBLEM \
"https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_5_D"
#include<bits/stdc++.h>#line 1 "library/util/InversionNumber.hpp"
#include<atcoder/fenwicktree>#line 2 "library/util/Compress.hpp"
template<typenameT,boolSentinel=false>classCompress{std::vector<T>v;boolprepared;public:Compress():prepared(false){ifconstexpr(Sentinel){static_assert(std::numeric_limits<T>::is_specialized,"cannot use Sentinel");v={std::numeric_limits<T>::min(),std::numeric_limits<T>::max()};}}Compress(conststd::vector<T>&w):v(w),prepared(false){ifconstexpr(Sentinel){static_assert(std::numeric_limits<T>::is_specialized,"cannot use Sentinel");v.push_back(std::numeric_limits<T>::min());v.push_back(std::numeric_limits<T>::max());}build();}voidadd(Ta){assert(!prepared);v.push_back(a);}voidbuild(){assert(!prepared);prepared=true;std::ranges::sort(v);autoresult=std::ranges::unique(v);v.erase(result.begin(),result.end());}boolis_prepared()const{returnprepared;}intoperator[](constT&a)const{assert(prepared);autoit=std::ranges::lower_bound(v,a);assert(*it==a);returnstd::distance(v.begin(),it);}intgeq(constT&a)const{assert(prepared);autoit=std::ranges::lower_bound(v,a);returnstd::distance(v.begin(),it);}intgt(constT&a)const{assert(prepared);autoit=std::ranges::upper_bound(v,a);returnstd::distance(v.begin(),it);}intleq(constT&a)const{assert(prepared);autoit=--std::ranges::upper_bound(v,a);returnstd::distance(v.begin(),it);}intlt(constT&a)const{assert(prepared);autoit=--std::ranges::lower_bound(v,a);returnstd::distance(v.begin(),it);}Tr(intid)const{assert(prepared);returnv[id];}boolexist(constT&a)const{assert(prepared);return(*std::ranges::lower_bound(v,a))==a;}intsize()const{returnv.size();}Tmax()const{returnv.back();}Tmin()const{returnv[0];}friendstd::ostream&operator<<(std::ostream&os,constCompress&C){for(inti=0;i<C.v.size();i++)os<<C.v[i]<<":"<<i<<" ";returnos;}};#line 4 "library/util/InversionNumber.hpp"
template<typenameT>longlonginversion_number(conststd::vector<T>&v){Compresscmp(v);atcoder::fenwick_tree<int>ft(cmp.size());longlongres=0;for(inti=int(v.size())-1;i>=0;i--){intj=cmp[v[i]];res+=ft.sum(0,j);ft.add(j,1);}returnres;}#line 6 "test/AOJ/ALDS1_5_D.test.cpp"
intmain(){intn;std::cin>>n;std::vector<int>v(n);for(inti=0;i<n;i++)std::cin>>v[i];std::cout<<inversion_number(v)<<std::endl;}