Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Alice và xi xử lý

Dễ

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Alice là một kĩ sư đang làm việc trên một loại vi xử lí mới. Bộ vi xử lí làm việc trên tập số nguyên không âm \(S\) (các số có thể được xuất hiện nhiều lần) để mô phỏng sự sống trong Matrix. Ban đầu tập \(S\) là rỗng, bộ vi xử lí có các loại truy vấn sau:

  • Truy vấn dạng: \(0\ x\), truy vấn này thêm một số nguyên \(x\) vào \(S\) (\(0 \le x \le 10^5\)). Nếu giá trị \(x\) đã có trong \(S\) thì truy vấn này vẫn được thực hiện;

  • Truy vấn dạng: \(1\ x\), truy vấn này xóa một số \(x\) khỏi \(S\) (\(0 \le x \le 10^5\)). Nếu giá trị \(x\) không thuộc \(S\) thì truy vấn này không cần làm gì. Nếu giá trị \(x\) xuất hiện nhiều lần trong \(S\) thì truy vấn này chỉ xóa đi một lần;

  • Truy vấn dạng: \(2\ a\), truy vấn này thay đổi cả tập \(S\) với sự ảnh hưởng của \(a\) (\(0 \le a \le 10^5\)). Cụ thể, với mỗi \(x\) thuộc \(S\), thay bằng \(x \oplus a\). Phép \(\oplus\) là phép toán \(XOR\).

  • Truy vấn dạng: \(3\ k\), truy vấn này tính tổng \(k\) phần tử nhỏ nhất trong \(S\) (\(0 \le k \le |S|\)).

Để kiểm tra trước khi đưa vào sử dụng, Alice muốn bạn lập trình để xử lí chính xác các truy vấn trên.

Input

  • Dòng đầu tiên chứa số nguyên dương \(Q\);
  • Mỗi dòng trong \(Q\) dòng tiếp theo chứa hai số nguyên mô tả một truy vấn như trên. Các số trên cùng một dòng cách nhau bởi dấu cách.

Output

Với mỗi truy vấn loại \(3\), in ra tổng của \(k\) phần tử nhỏ nhất trong \(S\) trên một dòng.

Example

Test 1

Input
6
0 1
2 2
0 3
3 2
2 2
3 1
Output
6
1

Scoring

  • Có \(25\) điểm thỏa mãn: \(Q \le 1000\);
  • Có \(25\) điểm khác thỏa mãn: \(Q \le 10^5\) và không có truy vấn loại \(2\);
  • Có \(25\) điểm khác thỏa mãn: \(Q \le 10^5\) và \(k \le 10\);
  • Có \(25\) điểm còn lại thỏa mãn: \(Q \le 10^5\).

Bình luận

Chưa có bình luận nào.