Cho một tập hợp \(A\) gồm \(n\) số nguyên đôi một khác nhau. Một chỉnh hợp lặp chập \(k\) là một dãy gồm \(k\) phần tử lấy từ \(A\), trong đó mỗi phần tử được phép xuất hiện nhiều lần và thứ tự các phần tử có ý nghĩa (ví dụ \((2,2)\) và \((2,5)\), \((5,2)\) đều là các dãy khác nhau).
Hãy đếm và liệt kê tất cả các chỉnh hợp lặp chập \(k\) của \(A\).
Input
- Dòng đầu chứa hai số nguyên \(k\) và \(n\).
- Dòng thứ hai chứa \(n\) số nguyên phân biệt là các phần tử của \(A\), mỗi số có giá trị tuyệt đối không quá \(500\).
Output
- Dòng đầu tiên in số lượng chỉnh hợp.
- Mỗi dòng tiếp theo in một chỉnh hợp (các phần tử cách nhau một dấu cách), theo thứ tự từ điển tăng dần (so sánh theo giá trị số).
Constraints
- \(1 \le k \le n \le 8\)
- Các phần tử của \(A\) đôi một khác nhau, \(|A_i| \le 500\)
- Để dữ liệu ra không quá lớn, đảm bảo \(n^k \le 10^6\).
Sample Input
2 3
4 -3 0
Sample Output
9
-3 -3
-3 0
-3 4
0 -3
0 0
0 4
4 -3
4 0
4 4
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.