#include #define fst(t) std::get<0>(t) #define snd(t) std::get<1>(t) using ll = std::int64_t; using P = std::tuple; struct FenwickTree{ std::vector data; FenwickTree(int n) : data(n + 1) {} void add(int k, int v){ k += 1; while(k < data.size()){ data[k] += v; k += k & -k; } } int sum(int r){ r = std::min(r, data.size() - 1); int res = 0; while(r > 0){ res += data[r]; r -= r & -r; } return res; } int sum(int l, int r){ return sum(r) - sum(l); } int at(int k){ return sum(k, k + 1); } }; int main(){ std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int N; std::cin >> N; std::vector

xy(N); for(int i=0;i> fst(xy[i]) >> snd(xy[i]); } { std::vector y(N); for(int i=0;i