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

Đường tới 1600

Đề bài

Mô tả

Cho một bảng vuông kích thước N×N. Mỗi ô của bảng được điền một số nguyên, các số đôi một khác nhau và là một hoán vị của 1,2,,N2 (mỗi số từ 1 đến N2 xuất hiện đúng một lần).

Đặt một quân cờ lên ô mang số 1. Ô này được coi là đã thăm ngay từ đầu. Sau đó, quân cờ di chuyển theo các quy tắc sau, lặp lại cho tới khi mọi ô đều đã thăm:

  1. Trong tất cả các ô chưa thăm mà quân cờ có thể đi tới bằng một nước đi, quân cờ đi tới ô có số nhỏ nhất và đánh dấu ô đó đã thăm.
  2. Nếu mọi ô mà quân cờ có thể đi tới đều đã thăm nhưng vẫn còn ô chưa thăm, quân cờ được dịch chuyển tức thời tới ô chưa thăm có số nhỏ nhất, và phải trả một khoản phí bằng 1.
  3. Nếu mọi ô đều đã thăm, quá trình dừng lại.

Cách di chuyển của hai loại quân:

  • Quân xe đi theo hàng ngang và hàng dọc, tới bất kỳ ô nào cùng hàng hoặc cùng cột với ô hiện tại (không bị chặn bởi các ô khác).
  • Quân hậu đi theo hàng ngang, hàng dọc và cả hai đường chéo, tới bất kỳ ô nào cùng hàng, cùng cột hoặc cùng một trong hai đường chéo với ô hiện tại.

Với cùng một bảng số, gọi tổng phí mà quân xe phải trả và tổng phí mà quân hậu phải trả lần lượt là hai đại lượng cần so sánh. Hãy tìm một cách điền bảng N×N sao cho quân xe trả phí ít hơn hẳn quân hậu, hoặc cho biết không tồn tại cách điền như vậy.

Dữ liệu vào

  • Một dòng duy nhất chứa số nguyên N là kích thước bảng.

Dữ liệu ra

  • Nếu không tồn tại bảng thoả mãn, in ra 1.
  • Ngược lại, in ra N dòng, mỗi dòng gồm N số nguyên mô tả bảng tìm được. Mỗi số từ 1 đến N2 phải xuất hiện đúng một lần, và với bảng này quân xe phải trả phí ít hơn hẳn quân hậu.

Nếu có nhiều bảng thoả mãn, in ra bất kỳ bảng nào.

Ràng buộc

  • 1N500

Ví dụ

Input Output Giải thích
1 -1 Bảng 1×1 chỉ có một ô, cả quân xe lẫn quân hậu đều không phải trả phí nào, nên không thể có phí quân xe nhỏ hơn phí quân hậu.
3 1 9 7
2 3 6
4 5 8
Với bảng này quân xe không phải dịch chuyển tức thời lần nào (phí 0), còn quân hậu phải dịch chuyển tức thời đúng một lần (phí 1). Do 0<1 nên bảng hợp lệ.
4 1 2 16 14
3 4 5 13
6 7 8 12
9 10 11 15
Quân xe trả phí 0, quân hậu trả phí 1.

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