CSES - Filling Trominos | Lấp đầy tromino

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Nhiệm vụ của bạn là lấp đầy một lưới \(n \times m\) bằng cách sử dụng L-tromino (ba ô vuông có hình chữ L). Ví dụ: đây là một cách để lấp đầy lưới \(4 \times 6\):

Input

  • Dòng đầu vào đầu tiên chứa một số nguyên \(t\): số lượng test
  • Sau đó, có \(t\) dòng mô tả các test. Mỗi dòng chứa hai số nguyên \(n\) và \(m\)

Constraints

  • \(1 \leq t \leq 100\)
  • \(1 \leq n \leq m \leq 100\)

Output

  • Đối với mỗi test, hãy in YES nếu có giải pháp và NO nếu ngược lại
  • Nếu có một giải pháp, cũng in \(n\) dòng mà mỗi dòng chứa \(m\) chữ cái giữa A-Z. Các ô vuông liền kề phải có chính xác cùng một chữ cái khi chúng thuộc cùng một tromino. Bạn có thể in bất kì giải pháp hợp lệ nào

Example

Test 1

Input
2
4 6
4 7
Output
YES
AADDBB
ACCDEB
BCAEEC
BBAACC
NO

Bình luận (1)

Mới nhất
Tải bình luận...