// CERC 2012 // Problem G: Jewel heist // Model solution, O(n log n) // Author: Lech Duraj #include #include #include #include #include const int maxn = 300*1000; using namespace std; typedef set::iterator sit; struct jewel { int x, y, c; }; int M; int T[8*maxn+10]; jewel A[maxn+2]; void add(int x) { int y = M+x; while(y>0) { T[y]++; y/=2; } } int query(int x) { int res = 0; int y = M+x; while(y>0) { if (y%2==0) res += T[y--]; y /= 2; } return res; } int main() { int TT; scanf("%d",&TT); while(TT--) { int n,k; scanf("%d%d",&n,&k); vector vals; map valmap; for(int i=0; i layer[2*n+4]; for(int i=0; i S[maxn+1]; for(int i=0; i<=2*n; i++) { for(int j=0; j