Cho một dãy số nguyên \(A\) gồm \(n\) phần tử ban đầu. Bạn cần xử lý \(Q\) truy vấn, mỗi truy vấn thuộc một trong hai loại sau:
- Truy vấn loại 1: dòng có dạng \(1\ x\) --- nghĩa là gán lại \(a_i := a_i \oplus x\) với mọi \(1 \le i \le n\).
- Truy vấn loại 2: dòng có dạng \(2\ k\) --- nghĩa là in ra phần tử lớn thứ \(k\) trong dãy hiện tại (phần tử lớn thứ nhất là lớn nhất).
Input
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(Q\) \((1 \le n, Q \le 10^5)\) --- số phần tử ban đầu và số truy vấn.
- Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) \((0 \le a_i < 2^{30})\) --- các phần tử ban đầu của dãy \(A\).
-
Mỗi dòng trong \(Q\) dòng tiếp theo chứa một truy vấn theo định dạng:
-
\(1\ x\) \((0 \le x < 2^{30})\) --- truy vấn loại 1.
- \(2\ k\) \((1 \le k \le n)\) --- truy vấn loại 2.
Output
- Với mỗi truy vấn loại 2, in ra một dòng chứa số nguyên là phần tử lớn thứ \(k\) hiện tại trong dãy.
Example
Test 1
Input
5 4
3 2 6 0 2
2 2
1 4
2 2
2 3
Output
3
6
6
Scoring
\begintabular|c|c|l|
\hline
Subtask & Điểm & Ràng buộc
\hline
1 & 20 & \(n, Q \le 1000\)
2 & 30 & \(x \le 200\)
3 & 50 & Không có ràng buộc bổ sung
\hline
\endtabular
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.