#include using namespace std; using ll = long long; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b A){ ll L = A.size(); FOR(i, 0, L){ if(i) cout << ' '; cout << A[i]; } cout << endl; } // ei1333's BIT template< typename T > struct BinaryIndexedTree { vector< T > data; BinaryIndexedTree(int sz) { data.assign(++sz, 0); } T sum(int k) { T ret = 0; for(++k; k > 0; k -= k & -k) ret += data[k]; return (ret); } void add(int k, T x) { for(++k; k < data.size(); k += k & -k) data[k] += x; } }; int main(){ cin.tie(0); ios::sync_with_stdio(false); // input ll N; cin >> N; vector A(N); FOR(i, 0, N){ cin >> A.at(i); } auto bit = BinaryIndexedTree(30010); ll count = 0; FOR(i, 0, N){ ll a = A[i]; ll num = i - bit.sum(a); // aより先に出現した、aよりも大きい数の個数 count += num; bit.add(a, 1); } p(count); return 0; }