Biểu thức 1

Xem PDF

Đ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.
  • \(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


  • 1
    SPyofgame    1:54 a.m. 23 Tháng 7, 2020

    Cái này đâu phải là chèn dáu đâu nhỉ


    • 0
      jumptozero    6:21 a.m. 23 Tháng 7, 2020
      • Bài này có 2 cách: Cách 1 : Bitmask, Cách 2: Đệ quy quay lui !

      • 0
        SPyofgame    8:58 a.m. 23 Tháng 7, 2020

        Ý minhf là không phải nó chèn dấu :v

      3 bình luận nữa