#include #include #include #include using namespace std; using ll = long long; template struct BIT{ int n; vector bit; BIT(int size): n(size), bit(size+1, 0) {}; void add(int i, Tr x){ //1-indexed while(i<=n){ bit[i]+=x; i+=i&-i; } } Tr sum(int i){ //1-indexed Tr ans=0; while(i>0){ ans+=bit[i]; i-=i&-i; } return ans; } Tr range(int l, int r){ //1-indexed if(r> n; vector a(n); for(auto&x:a) cin >> x; int m; { map mp; for(auto x:a) mp[x]++; int c=1; for(auto&p:mp) p.second=c++; for(auto&x:a) x=mp[x]; m=mp.size(); } BIT bit(m); ll ans=0; for(int i=0; i