Đ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

Liệt kê chỉnh hợp lặp

Dễ Đệ quy quay lui Đệ quy

  • 100 Điểm
  • 100% Tỉ lệ AC
  • 1 Số AC
  • 500M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

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

Chưa có bình luận nào.