#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; template struct BIT{ //1-indexed vector bit; int size; BIT(int n):size(n), bit(n+1, 0){} void init(){ fill(bit.begin(), bit.end(), 0); } T sum(int i){ T s=0; while(i>0){ s+=bit[i]; i-=(i&(-i)); } return s; } void add(int i, T x){ while(i<=size){ bit[i]+=x; i+=(i&(-i)); } } }; int main() { int n; cin>>n; int a[1000010]; vector v(n); for(int i=0; i bit(m), bit2(m); ll c1[1000010], c2[1000010], c[1000010]={}, c0[1000010]={}; for(int i=0; i=0; i--){ c2[i]=bit.sum(a[i]); bit.add(a[i]+1, 1); } for(int i=0; i=0; i--){ c2[i]=(n-1-i)-bit.sum(a[i]+1); bit.add(a[i]+1, 1); } for(int i=0; i