trang chủ / bài tập / palmatrix

Ma trận đối xứng kép

Đề bài

Mô tả

Một ma trận vuông được gọi là đối xứng kép (palindromic) nếu nó không thay đổi khi đảo ngược thứ tự các hàng, đồng thời cũng không thay đổi khi đảo ngược thứ tự các cột.

Cho n2 số nguyên. Hãy sắp xếp chúng vào một ma trận n×n sao cho mỗi số được dùng đúng một lần, mỗi ô chứa đúng một số, và ma trận thu được là đối xứng kép. Nếu có nhiều cách sắp xếp, in ra một cách bất kỳ. Nếu không tồn tại cách sắp xếp nào, in ra "NO".

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n.
  • Dòng thứ hai chứa n2 số nguyên a1,a2,,an2 — các số cần xếp vào ma trận.

Dữ liệu ra

Nếu có thể xếp toàn bộ n2 số vào ma trận n×n đối xứng kép, in "YES" ở dòng đầu, sau đó in n dòng, mỗi dòng gồm n số cách nhau bởi dấu cách — chính là ma trận kết quả.

Nếu không thể, in "NO".

Có thể in chữ "YES"/"NO" bằng bất kỳ kiểu hoa thường nào, ví dụ "Yes", "no", "YES" đều được chấp nhận.

Ràng buộc

  • 1n20
  • 1ai1000

Ví dụ

Input Output Giải thích
4
1 8 8 1 2 2 2 2 2 2 2 2 1 8 8 1
YES
1 2 2 1
2 8 8 2
2 8 8 2
1 2 2 1
Ma trận thu được không thay đổi khi đảo hàng hoặc đảo cột.
3
1 1 1 1 1 3 3 3 3
YES
1 3 1
3 1 3
1 3 1
Một cách xếp hợp lệ với n lẻ.
4
1 2 1 9 8 4 3 8 8 3 4 8 9 2 1 1
NO Không tồn tại cách xếp đối xứng kép.
1
10
YES
10
Ma trận 1×1 luôn đối xứng kép.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0