Đ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

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Truy vấn

100 điểm

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 \leq x \leq 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 \leq x \leq 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ả phần tử của \(S\) với sự ảnh hưởng của \(a\) \((0 \leq a \leq 10^{5})\). Cụ thể, với \(x\) thuộc \(S\) được thay bằng \(x \oplus a\). Phép toán \(\oplus\) (trong các ngôn ngữ lập trình thường được kí hiệu là ^) được định nghĩa như sau: Kết quả của phép toán \(\oplus\) giữa hai số nguyên không âm \(x\) và \(y\) là một số nguyên không âm \(z\) trong đó bit thứ \(i\) trong biểu diễn nhị phân của \(z\) sẽ là \(0\) khi bit thứ \(i\) trong biểu diễn nhị phân của \(x\) và \(y\) bằng nhau (đồng thời bằng \(0\) hoặc \(1\)), ngược lại bit thứ \(i\) trong biểu diễn nhị phân của \(z\) sẽ là \(1\).

  • 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 \leq k \leq |S|)\).

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

Input

  • Dòng thứ nhất chứa số nguyên dương \(Q\) \((1 \leq Q \leq 10^{5})\) là số lượng truy vấn.

  • Dòng thứ \(i\) \((1 \leq i \leq Q)\) trong \(Q\) dòng tiếp theo chứa hai số nguyên mô tả loại truy vấn.

Output

  • Với mỗi truy vấn loại \(3\), hãy 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

  • Subtask \(1\) (\(25\%\) số điểm): \(Q \leq 1000\).

  • Subtask \(2\) (\(25\%\) số điểm): không có truy vấn loại \(2\).

  • Subtask \(3\) (\(25\%\) số điểm): \(k \leq 10\).

  • Subtask \(4\) (\(25\%\) số điểm): không có rằng buộc gì thêm.

root

Chẵn lẻ

100 điểm

Viết chương trình nhập vào từ bàn phím một số nguyên \(x\). Nếu \(x\) là số chẵn, in ra "SO CHAN", ngược lại in ra "SO LE".

Example

Test 1

Input
2
Output
SO CHAN

Test 2

Input
3
Output
SO LE

Test 3

Input
4
Output
SO CHAN

root

Cuộc phiêu lưu

100 điểm

Trong thế giới phép thuật, một người gác cổng trẻ tuổi tên là Minh được giao nhiệm vụ bảo vệ \(n\) cánh cổng thần bí, được đánh số từ \(1\) đến \(n\). Tại mỗi cánh cổng thứ \(i\) có một chiếc hộp chứa kho báu và một lò xo dịch chuyển.

  • Lò xo có độ đàn hồi có thể điều chỉnh trong một khoảng \([L_i, H_i]\).
  • Bốn loại báu vật được cất giữ, đánh số từ \(1\) đến \(4\), mỗi loại có một giá trị nhất định.

Để mở hộp, Minh cần dùng một chìa khóa ma thuật là một chuỗi 4 bit. Mỗi bit 1 tương ứng với việc lấy một loại báu vật. Ví dụ, với chìa khóa \(0110\), Minh sẽ nhận được báu vật loại \(2\) và \(3\).

Sau khi lấy kho báu, Minh sẽ dùng lò xo để dịch chuyển đến một cánh cổng khác. Nếu điều chỉnh độ đàn hồi của lò xo là \(k\) (\(k \in [L_i, H_i]\)), anh ta sẽ dịch chuyển đến cổng \(i+k\). Nếu \(i+k > n\), anh ta sẽ dịch chuyển ra khỏi khu vực bảo vệ.

Có một số quy tắc đặc biệt mà Minh phải tuân thủ:

  • Chìa khóa không được có hai bit \(1\) liền kề.
  • Hai chìa khóa sử dụng liên tiếp không được có bit \(1\) ở cùng một vị trí. Ví dụ, nếu vừa dùng chìa \(0010\) thì chìa \(1010\) ở bước tiếp theo sẽ không hợp lệ.
  • Minh phải lấy ít nhất một loại báu vật.
  • Hành trình của Minh chỉ kết thúc khi anh ta dịch chuyển ra khỏi khu vực bảo vệ.

Minh bắt đầu từ cánh cổng \(1\). Anh ta muốn đi qua các cổng và thu thập báu vật một cách hợp lệ để đạt được tổng giá trị lớn nhất có thể.

Yêu cầu:
Hãy tính tổng giá trị báu vật lớn nhất mà Minh có thể thu thập.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(n \le 10^5\)).
  • \(n\) dòng tiếp theo, dòng thứ \(i\) chứa \(6\) số nguyên: \(L_i, H_i\) và giá trị của \(4\) món báu vật ở cổng thứ \(i\) \((0 < L_i \le H_i \le 10^9)\). Giá trị của các món báu vật có giá trị tuyệt đối nhỏ hơn hoặc bằng \(10^9\).

Output

  • Một số nguyên duy nhất là giá trị tối đa có thể thu thập.

Example

Test 1

Input
6
1 1 3 2 -4 5
1 2 2 -3 1 3
2 2 1 1 -1 -1
1 3 -10 10 30 33
1 1 2 3 -5 4
1 100 2 2 2 2
Output
59

Scoring

  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm : \(n \leq 5\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm : \(n \leq 10\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm : \(n \leq 1000\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm : \(L_i = H_i\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm còn lại không có ràng buộc gì thêm.

root

AND

100 điểm

Nhập vào hai số nguyên a và b. Nếu hai số vừa nhập có giá trị a = 5 và b = 10, thì in ra "Hop le". Ngược lại in ra "Khong hop le".

Example

Test 1

Input
5 10
Output
Hop le

Test 2

Input
5 11
Output
Khong hop le
Xem thêm