Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Bạn được cho 1 danh sách \(A\) gồm \(n\) số nguyên và một số nguyên \(m\). Bạn được quyền thực hiện các thao tác thỏa mãn điều kiện sau:
- Không được thay đổi thứ tự các phần tử của danh sách này.
- Bạn phải chèn thêm một trong hai dấu \(\{+,-\}\) vào giữa các phần tử của tập hợp.
- Có \(n-1\) khoảng giữa các phần tử mà bạn có thể chèn dấu vào.
Ví dụ, với \(a=[3,4,5]\) bạn có thể thêm vào các dấu biến nó trở thành biểu thứ \(3+4-5\). Giá trị của biểu thức này là \(2\).
Hãy liệt kê hết các cách chèn dấu mà giá trị của biểu thức được tạo ra là \(m\).
Input
- Dòng thứ nhất chứa hai số nguyên \(n\), \(m\) \((1 \leq n < 22, |m| \leq 5 * 10^9)\)
- Dòng thứ hai chứa \(n\) số nguyên \(A_1, A_2, \dots, A_n\) (\(|A_i| \leq 10^9\))
Output
- In ra nhiều dòng, mỗi dòng là một biểu thức hợp lệ. Các biểu thức in tăng dần theo thứ tự từ điển. Xem ví dụ để in đáp án được chính xác.
Example
Test 1
Input
5 0
0 -4 -1 0 -3
Output
0+4-1+0-3
0+4-1-0-3
0-4+1+0+3
0-4+1-0+3
Bình luận
Kuroo, \(|m| \leq 2 \times 10^9\) mà test lại có \(m = 4214479317\) :thonk:
lmao mà thôi kệ 🙁