Language: C++

#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
class Node{
public:
  int location;
  int p,l,r;
  Node(){}
};
class Point{
public:
  int id,x,y;
  Point(){}
  Point(int id,int x,int y): id(id),x(x),y(y){}
  bool operator < (const Point &p){return id<p.id;}
};
static const int MAX =1000000;
static const int NIL = -1;
int n;
Point P[MAX];
Node T[MAX];
int np;
bool lessX(const Point &p1,const Point &p2){return p1.x<p2.x;}
bool lessY(const Point &p1,const Point &p2){return p1.y<p2.y;}
int makeKDTree(int l,int r, int d){
  if(!(l<r))return NIL;
  int mid=(l+r)/2;
  int t=np++;
  if(d%2==0)sort(P+l,P+r,lessX);
  else sort(P+l,P+r,lessY);
  T[t].location=mid;
  T[t].l=makeKDTree(l,mid,d+1);
  T[t].r=makeKDTree(mid+1,r,d+1);
  return t;
}
void find(int v,int sx,int tx,int sy,int ty,int d,vector<Point> &ans){
  int x=P[T[v].location].x;
  int y=P[T[v].location].y;
  if(sx<=x&&x<=tx&&sy<=y&&y<=ty)ans.push_back(P[T[v].location]);
  if(d%2==0){
    if(T[v].l!=NIL)if(sx<=x)find(T[v].l,sx,tx,sy,ty,d+1,ans);
    if(T[v].r!=NIL)if(x<=tx)find(T[v].r,sx,tx,sy,ty,d+1,ans);
  }
  else{
    if(T[v].l!=NIL)if(sy<=y)find(T[v].l,sx,tx,sy,ty,d+1,ans);
    if(T[v].r!=NIL)if(y<=ty)find(T[v].r,sx,tx,sy,ty,d+1,ans);
  }
}
int main(){
  int x,y;
  cin>>n;
  rep(i,n){
    scanf("%d %d",&x,&y);
    P[i]=Point(i,x,y);
    T[i].l=T[i].r=T[i].p=NIL;
  }
  np=0;
  int root=makeKDTree(0,n,0);
  int q;
  cin>>q;
  int sx,sy,tx,ty;
  vector<Point>ans;
  rep(i,q){
    scanf("%d %d %d %d",&sx,&tx,&sy,&ty);
    ans.clear();
    find(root,sx,tx,sy,ty,0,ans);
    sort(ans.begin(),ans.end());
    rep(j,ans.size())printf("%d\n",ans[j].id);
    cout<<endl;
  }return 0;
}

Compiler output:
a.cc: In function 'int makeKDTree(int, int, int)':
a.cc:28:13: error: 'sort' was not declared in this scope; did you mean 'short'?
   28 |   if(d%2==0)sort(P+l,P+r,lessX);
      |             ^~~~
      |             short
a.cc:29:8: error: 'sort' was not declared in this scope; did you mean 'short'?
   29 |   else sort(P+l,P+r,lessY);
      |        ^~~~
      |        short
a.cc: At global scope:
a.cc:35:51: error: 'vector' has not been declared
   35 | void find(int v,int sx,int tx,int sy,int ty,int d,vector<Point> &ans){
      |                                                   ^~~~~~
a.cc:35:57: error: expected ',' or '...' before '<' token
   35 | void find(int v,int sx,int tx,int sy,int ty,int d,vector<Point> &ans){
      |                                                         ^
a.cc: In function 'void find(int, int, int, int, int, int, int)':
a.cc:38:33: error: 'ans' was not declared in this scope
   38 |   if(sx<=x&&x<=tx&&sy<=y&&y<=ty)ans.push_back(P[T[v].location]);
      |                                 ^~~
a.cc:40:57: error: 'ans' was not declared in this scope
   40 |     if(T[v].l!=NIL)if(sx<=x)find(T[v].l,sx,tx,sy,ty,d+1,ans);
      |                                                         ^~~
a.cc:41:57: error: 'ans' was not declared in this scope
   41 |     if(T[v].r!=NIL)if(x<=tx)find(T[v].r,sx,tx,sy,ty,d+1,ans);
      |                                                         ^~~
a.cc:44:57: error: 'ans' was not declared in this scope
   44 |     if(T[v].l!=NIL)if(sy<=y)find(T[v].l,sx,tx,sy,ty,d+1,ans);
      |                                                         ^~~
a.cc:45:57: error: 'ans' was not declared in this scope
   45 |     if(T[v].r!=NIL)if(y<=ty)find(T[v].r,sx,tx,sy,ty,d+1,ans);
      |                                                         ^~~
a.cc: In function 'int main()':
a.cc:50:3: error: 'cin' was not declared in this scope
   50 |   cin>>n;
      |   ^~~
a.cc:1:1: note: 'std::cin' is defined in header '<iostream>'; this is probably fixable by adding '#include <iostream>'
  +++ |+#include <iostream>
    1 | #define rep(i,n) for(int i=0;i<n;i++)
a.cc:52:5: error: 'scanf' was not declared in this scope
   52 |     scanf("%d %d",&x,&y);
      |     ^~~~~
a.cc:61:3: error: 'vector' was not declared in this scope
   61 |   vector<Point>ans;
      |   ^~~~~~
a.cc:1:1: note: 'std::vector' is defined in header '<vector>'; this is probably fixable by adding '#include <vector>'
  +++ |+#include <vector>
    1 | #define rep(i,n) for(int i=0;i<n;i++)
a.cc:61:15: error: expected primary-expression before '>' token
   61 |   vector<Point>ans;
      |               ^
a.cc:61:16: error: 'ans' was not declared in this scope
   61 |   vector<Point>ans;
      |                ^~~
a.cc:63:5: error: 'scanf' was not declared in this scope
   63 |     scanf("%d %d %d %d",&sx,&tx,&sy,&ty);
      |     ^~~~~
a.cc:66:5: error: 'sort' was not declared in this scope; did you mean 'short'?
   66 |     sort(ans.begin(),ans.end());
      |     ^~~~
      |     short
a.cc:67:22: error: 'printf' was not declared in this scope
   67 |     rep(j,ans.size())printf("%d\n",ans[j].id);
      |                      ^~~~~~
a.cc:1:1: note: 'printf' is defined in header '<cstdio>'; this is probably fixable by adding '#include <cstdio>'
  +++ |+#include <cstdio>
    1 | #define rep(i,n) for(int i=0;i<n;i++)
a.cc:68:5: error: 'cout' was not declared in this scope
   68 |     cout<<endl;
      |     ^~~~
a.cc:68:5: note: 'std::cout' is defined in header '<iostream>'; this is probably fixable by adding '#include <iostream>'
a.cc:68:11: error: 'endl' was not declared in this scope
   68 |     cout<<endl;
      |           ^~~~
a.cc:1:1: note: 'std::endl' is defined in header '<ostream>'; this is probably fixable by adding '#include <ostream>'
  +++ |+#include <ostream>
    1 | #define rep(i,n) for(int i=0;i<n;i++)