Domino (lát bảng ngang/dọc)

Đề bài

Mô tả

Cho một bảng gồm n hàng và m cột (tích n·m là số chẵn).

Một quân domino là hình gồm hai ô có chung một cạnh. Domino có thể nằm ngang (hai ô cạnh nhau theo chiều ngang) hoặc nằm dọc (hai ô cạnh nhau theo chiều dọc).

Bạn cần đặt n·m/2 quân domino lên bảng sao cho có đúng k quân nằm ngang, tất cả các quân còn lại nằm dọc. Các quân domino không được chồng lên nhau và phải phủ kín toàn bộ bảng.

Nếu tồn tại cách đặt, bạn phải mô tả một cách đặt bằng cách tô màu mỗi ô bằng một chữ cái Latinh in thường, tuân theo quy tắc: với mọi hai ô có chung cạnh, chúng được tô cùng chữ cái khi và chỉ khi chúng thuộc cùng một quân domino. Nói cách khác, hai ô của cùng một quân domino phải cùng chữ cái, còn hai quân domino kề cạnh nhau phải khác chữ cái. Nếu có nhiều cách hợp lệ, in ra một cách bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t là số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm một dòng chứa ba số nguyên n, m, k: số hàng, số cột và số quân domino nằm ngang cần đặt.

Dữ liệu ra

Với mỗi bộ dữ liệu:

  • In ra NO nếu không thể đặt domino theo yêu cầu.
  • Ngược lại, in ra YES trên một dòng riêng, sau đó in n dòng, mỗi dòng gồm m chữ cái Latinh in thường mô tả cách đặt domino theo quy tắc tô màu ở trên.

Ràng buộc

  • 1t10
  • 1n,m100
  • 0kn·m/2
  • n·m là số chẵn.

Ví dụ

Input Output Giải thích
3
2 4 2
3 2 3
1 2 0
YES
aaca
bbca
YES
aa
bb
aa
NO
Bảng 2×4: hai domino ngang (aa ở hàng trên) và hai domino dọc (c, a ở hai cột cuối). Bảng 3×2: cả ba domino đều nằm ngang. Bảng 1×2: cách phủ duy nhất là một domino ngang, nhưng cần k=0 nên vô nghiệm.
2
5 2 2
2 17 16
NO
YES
abbaabbaabbaabbaa
accbbaabbaabbaabb
Bảng 5×2 với k=2 là vô nghiệm do ràng buộc chẵn lẻ. Bảng 2×17: 16 domino ngang và 1 domino dọc (cột đầu, chữ a).

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 1.26.3 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