#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[200020]; vector v(n); for(int i=0; i>a[i]; v[i]=a[i]; } sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end()); for(int i=0; i bit(m); ll c1[200020]; for(int i=0; i=0; i--){ c2[i]=bit.sum(a[i]); bit.add(a[i]+1, 1); } ll c[200020]={}; 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>q; for(int i=0; i>l>>h; h++; l=lower_bound(v.begin(), v.end(), l)-v.begin(); h=lower_bound(v.begin(), v.end(), h)-v.begin(); l=lower_bound(p, p+n, P(l, 0))-p; h=lower_bound(p, p+n, P(h, 0))-p; cout<