trang chủ / đề bài / icpc20_reg_b

Hình vuông đẹp

Đề bài

Mô tả

Harry thích vẽ, và Harry cũng thích hình vuông. Hôm nay Harry sẽ vẽ một hình vuông.

Hình vuông của Harry được chia thành n·n ô vuông đơn vị. Các hàng được đánh số từ 1 đến n từ trên xuống dưới, các cột được đánh số từ 1 đến n từ trái sang phải.

Trong mỗi ô, Harry sẽ viết một số nguyên trong đoạn [1,n·n]. Theo Harry, một hình vuông là đẹp khi và chỉ khi thỏa mãn cả hai điều kiện sau:

  • Mỗi số nguyên từ 1 đến n·n được viết trong đúng một ô.
  • Với mỗi i từ 1 đến n·n−1, hai số i và i+1 được viết trong hai ô có chung một cạnh.

Harry đã vẽ một hình vuông kích thước n và đã viết số 1 vào một ô nào đó. Hãy giúp Harry viết các số từ 2 đến n·n để tạo thành một hình vuông đẹp.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên t: số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm một dòng chứa ba số nguyên n, r, c: kích thước hình vuông, hàng và cột của ô chứa số 1.

Dữ liệu ra

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

  • Nếu không thể tạo được hình vuông đẹp, in ra một dòng chứa NO.
  • Ngược lại, in ra YES, tiếp theo là n dòng, mỗi dòng chứa đúng n số nguyên mô tả hình vuông đẹp. Nếu có nhiều cách, in ra cách bất kỳ.

Ràng buộc

  • 1≤t≤100.
  • 1≤r,c≤n≤100.

Ví dụ

Input Output Giải thích
2
4 1 1
5 1 2
YES
1 2 3 4
16 7 6 5
15 8 9 10
14 13 12 11
NO
Với bộ thứ nhất, các số tăng dần theo một đường đi qua mọi ô, mỗi bước sang một ô kề cạnh. Một đáp án khác cũng được chấp nhận là đi theo hình rắn từng hàng: 1 2 3 4 / 8 7 6 5 / 9 10 11 12 / 16 15 14 13. Với bộ thứ hai, không tồn tại hình vuông đẹp.
3
1 1 1
3 2 2
2 1 2
YES
1
YES
3 4 5
2 1 6
9 8 7
YES
4 1
3 2
Hình vuông 1×1 chỉ có số 1. Với n=3, số 1 ở ô chính giữa; đường đi qua cả 9 ô.

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