#72. Lưới nhị phân (Mã bài: BGRID)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Bạn được cho một lưới ô vuông kích thước n \times n , các hàng và cột được đánh số từ 1 đến n . Ban đầu các ô trên lưới đều có giá trị bằng 0. Sau đó, bạn thực hiện P thay đổi, mỗi thay đổi có dạng (T_i, W_i) :

  • Nếu T_i = 1 : mọi ô (x,y) sao cho 1 \le x,y \le W_i sẽ đảo ngược giá trị (0 thành 1, 1 thành 0).
  • Nếu T_i = 2 : mọi ô (x,y) sao cho W_i \le x,y \le n sẽ đảo ngược giá trị.

Sau P thay đổi, bạn được cho Q truy vấn, mỗi truy vấn yêu cầu tìm giá trị hiện tại của một ô cho trước.

Dữ liệu:

  • Dòng đầu: hai số nguyên n, P ( 1 \le n \le 10^9, 1 \le P \le 2 \times 10^5 ).
  • P dòng tiếp theo: mỗi dòng chứa hai số T_i, W_i ( 1 \le T_i \le 2, 1 \le W_i \le n ).
  • Dòng tiếp theo: số nguyên Q ( 1 \le Q \le 2 \times 10^5 ).
  • Q dòng tiếp theo: mỗi dòng chứa hai số X_i, Y_i ( 1 \le X_i, Y_i \le n ).

Kết quả: Ghi ra Q dòng, mỗi dòng là giá trị của ô được hỏi.

Ví dụ:

Dữ liệu:

7 4
1 2
2 5
1 6
2 1
3
1 1
6 5
4 3

Kết quả:

1
1
0

Giới hạn:

  • Subtask #1: 25\% số điểm với n,P,Q \le 200 .
  • Subtask #2: 25\% số điểm với n,P,Q \le 2000 .
  • Subtask #3: 25\% số điểm với n \le 2 \times 10^5 .
  • Subtask #4: 25\% số điểm còn lại không có ràng buộc thêm.