#5398. Tổng các tập con (Mã bài: SUMITUP)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một tập hợp gồm N số nguyên dương (có thể có các số trùng nhau) và một số nguyên đích T . Hãy tìm tất cả các tập con (không rỗng) của tập hợp đã cho có tổng các phần tử đúng bằng T .

Các tập con được coi là khác nhau nếu chúng được tạo thành từ các chỉ số khác nhau của mảng ban đầu. Khi in ra kết quả, các tập con phải được liệt kê theo thứ tự từ điển giảm dần và không có hai dòng nào giống hệt nhau.

Dữ liệu:

  • Gồm nhiều dòng, mỗi dòng là một bộ test.
  • Mỗi bộ test trên một dòng, bắt đầu bằng hai số nguyên T N , theo sau là N số nguyên là các phần tử của tập hợp.
  • Dữ liệu kết thúc khi T=0 N=0 .

Kết quả:

  • Với mỗi bộ test, đầu tiên in ra dòng "Sums of [T]:".
  • Sau đó, in các tập con tìm được, mỗi tập con trên một dòng. Các phần tử của tập con được nối với nhau bởi dấu "+".
  • Nếu không tìm thấy tập con nào, in ra "NONE".

Ví dụ:

Dữ liệu:

4 6 4 3 2 2 1 1
5 3 2 1 1
400 12 50 50 50 50 50 50 25 25 25 25 25 25
0 0

Kết quả:

Sums of 4:
4
3+1
2+2
2+1+1
1+1+1+1
Sums of 5:
NONE
Sums of 400:
50+50+50+50+50+50+50+50
50+50+50+50+50+50+25+25+25+25

Giới hạn:

  • 1 \le T \le 1000 .
  • 1 \le N \le 12 .
  • Các phần tử trong tập hợp là số nguyên dương.