Bảng chữ nhật đẹp
Đề bài
Mô tả
Cho số nguyên. Bạn cần chọn ra một tập con của chúng và xếp các số được chọn vào một bảng chữ nhật (ma trận): mỗi số được chọn chiếm đúng một ô, mỗi ô chứa đúng một số được chọn. Một vài trong số ban đầu có thể không được chọn.
Một bảng chữ nhật được gọi là đẹp nếu trên mỗi hàng và trên mỗi cột, tất cả các giá trị đều đôi một khác nhau.
Hãy tìm bảng đẹp có tổng số ô lớn nhất và in ra chính bảng đó.
Lưu ý rằng các số bằng nhau trong dữ liệu vào được coi là các bản sao riêng biệt: nếu giá trị xuất hiện lần thì bạn được dùng tối đa lần trong bảng, miễn là các lần dùng đó nằm trên những hàng khác nhau và những cột khác nhau.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
- Dòng đầu tiên in số nguyên là tổng số ô của bảng đẹp lớn nhất.
- Dòng thứ hai in hai số nguyên và với là kích thước của bảng.
- dòng tiếp theo, mỗi dòng in số mô tả bảng.
Nếu có nhiều đáp án thoả mãn, in ra một đáp án bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 12 3 1 4 1 5 9 2 6 5 3 5 8 |
12 3 4 5 3 1 6 4 5 3 9 8 2 5 1 |
Dùng được cả 12 số, xếp thành bảng . Giá trị 5 xuất hiện 3 lần và được đặt trên 3 hàng khác nhau, 3 cột khác nhau. |
| 5 1 1 1 1 1 |
1 1 1 1 |
Mọi số đều bằng nhau nên bảng không thể có hai ô. Bảng đẹp lớn nhất là . |
| 15 17 5 20 11 14 9 5 12 5 11 5 14 1 12 18 |
12 2 6 14 12 11 5 20 17 9 14 12 11 5 18 |
Không phải lúc nào cũng dùng hết các số: ở đây chỉ 12 trong 15 số được chọn. Giá trị 5 có 4 bản sao nhưng bảng chỉ có 2 hàng nên nhiều nhất 2 bản sao được dùng. |
Bình luận