trang chủ / đề bài / beautrect

Bảng chữ nhật đẹp

Đề bài

Mô tả

Cho n 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 n 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ị v xuất hiện k lần thì bạn được dùng v tối đa k 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 n.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.

Dữ liệu ra

  • Dòng đầu tiên in số nguyên x là tổng số ô của bảng đẹp lớn nhất.
  • Dòng thứ hai in hai số nguyên p và q với p·q=x là kích thước của bảng.
  • p dòng tiếp theo, mỗi dòng in q 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

  • 1≤n≤4·105
  • 1≤ai≤109

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 3×4. 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à 1×1.
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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0