Đ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

In bit

100 điểm

Viết chương trình nhập vào một số nguyên không âm \(N\) (\(0 \leq N \leq 10^9\)). Hãy in ra lần lượt từng bit của \(N\) từ trái sang phải (bit có trọng số lớn nhất đến bit có trọng số nhỏ nhất).

Input

Một dòng duy nhất chứa số nguyên \(N\).

Output

Một dòng duy nhất chứa các bit của \(N\), cách nhau bởi dấu cách.

Example

Test 1

Input
13
Output
1 1 0 1 

root

Tô màu đường đi

100 điểm

Taki có một cây gồm \(n\) đỉnh, được đánh số từ \(1\) đến \(n\). Ban đầu, tất cả các cạnh đều được tô màu \(0\).

Anh ấy sẽ thực hiện \(k\) thao tác. Trong thao tác thứ \(i\), Taki chọn hai đỉnh \(x_i\) và \(y_i\), sau đó tô tất cả các cạnh trên đường đi ngắn nhất từ \(x_i\) đến \(y_i\) bằng màu \(i\). Nếu một cạnh đã được tô màu trước đó, màu mới sẽ ghi đè lên màu cũ.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(k\) \((2 \leq n \leq 5 \times 10^5,\ 1 \leq k \leq 5 \times 10^5)\) --- số đỉnh của cây và số màu.
  • Mỗi dòng trong \(n - 1\) dòng tiếp theo chứa hai số nguyên \(u_i\) và \(v_i\) \((1 \leq u_i, v_i \leq n)\) --- biểu thị cạnh thứ \(i\) nối hai đỉnh \(u_i\) và \(v_i\). Đảm bảo rằng các cạnh tạo thành một cây.
  • Mỗi dòng trong \(k\) dòng tiếp theo chứa hai số nguyên \(x_i\) và \(y_i\) \((1 \leq x_i, y_i \leq n)\) --- mô tả thao tác tô màu đường đi từ đỉnh \(x_i\) đến \(y_i\) bằng màu \(i\).

Output

Gọi \(d(i)\) là màu cuối cùng của cạnh thứ \(i\) theo thứ tự xuất hiện của input.
In ra \(\prod \max(d(i), 1)\) \(mod\) \((10^9+7)\)

Example

Test 1

Input
6 2
1 2
2 3
2 4
1 5
4 6
5 2
6 1
Output
8
Note

Giải thích test \(1\), dãy \(d\) cuối là \([2,0,2,1,2]\). Đáp án là \(2*1*2*1*2=8\).

Test 2

Input
5 4
1 2
2 3
3 4
4 5
5 5
4 3
2 1
2 4
Output
48

Scoring

\begintabular|c|c|l|
\hline
Subtask & Điểm & Ràng buộc

\hline
1 & 20 & \(n, k \leq 2000\)

2 & 25 & \(u_i = i\), \(v_i = i + 1\) với mọi \(i\)

3 & 20 & \(n, k \leq 10^5\)

4 & 35 & Không có ràng buộc bổ sung

\hline
\endtabular

root

Phù thủy bit và bùa phép nhị phân

100 điểm

Trong hội nghị Phù Thủy Bit năm 2023, các pháp sư phải vượt qua thử thách pha trộn phép thuật bit. Mỗi phù thủy nhận được hai bùa chú a và b (15-bit) và phải tạo ra bùa c bằng cách:

  • Bit 0-4 (Ma thuật hỗn loạn): Dùng phép XOR để tạo sự bất ổn
  • Bit 5-9 (Ma thuật bảo vệ): Dùng phép AND để thiết lập phòng thủ
  • Bit 10-14 (Ma thuật hợp nhất): Dùng phép OR để kết hợp sức mạnh

Input

  • Dòng đầu: Số phép thử \(q\) (\(1 \leq q \leq 10^5\))
  • \(q\) dòng tiếp theo, mỗi dòng chứa hai bùa chú \(a\) và \(b\) (\(0 \leq a, b < 2^{15}\))

Output

  • Với mỗi phép thử, in ra bùa chú \(c\) đã được pha trộn

Example

Test 1

Input
5
14770 18964
14658 8827
30303 24969
30474 19570
10695 19875
Output
30726
14425
29718
31768
28036

root

Cửa hàng kem lạnh

100 điểm

Một ngày hè nóng nực, hai người bạn nhỏ Hưng và Minh ghé vào một cửa hàng bán \(n\) loại kem khác nhau, với loại kem thứ \(i\) có giá \(c_i\).

Họ muốn mua \(m\) cây kem. Minh đề xuất một cách chia tiền như sau:

Nếu cây kem có giá nhỏ hơn \(k\), Hưng sẽ trả toàn bộ số tiền.

Ngược lại, Hưng chỉ trả \(k\) đồng, phần còn lại (tức là \(c_i - k\)) sẽ do Minh trả.

Gọi \(l\) là tổng tiền Hưng phải trả, và \(f\) là tổng tiền Minh phải trả. Hưng cảm thấy cách chia tiền này không công bằng nên muốn chọn ra \(m\) cây kem sao cho biểu thức \(l - f\) nhỏ nhất có thể.

Bạn được yêu cầu tính giá trị nhỏ nhất của \(l - f\) cho mỗi trong \(q\) truy vấn, mỗi truy vấn cung cấp một giá trị \(k\) và \(m\).

Input

\begin itemize

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) (\(1 \le n, q \le 10^5\)) --- số lượng cây kem và số truy vấn.

  • Dòng thứ hai chứa \(n\) số nguyên \(c_1, c_2, \dots, c_n\) (\(1 \le c_i \le 10^9\)) --- giá của từng loại kem.

  • \(q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(k_i\) và \(m_i\) (\(1 \le k_i \le 10^9\), \(1 \le m_i \le n\)) --- truy vấn thứ \(i\).

Output

Gồm \(q\) dòng, mỗi dòng ghi giá trị nhỏ nhất của biểu thức \(l - f\) tương ứng với truy vấn thứ \(i\).

Example

Test 1

Input
5 2
1 9 22 10 19
18 4
5 2
Output
34
-21

Test 2

Input
7 4
1 5 4 3 7 11 9
5 4
5 7
7 3
4 5
Output
4
16
7
1

Scoring

  • Subtask 1 (30 điểm): \(n, q \le 1000\), \(c_i, k_i \le 10^6\).
  • Subtask 2 (30 điểm): \(k_1 = k_2 = \dots = k_n\).
  • Subtask 3 (40 điểm): Không có ràng buộc bổ sung.
Xem thêm