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

Hành trình nhảy trên bảng

Đề bài

Mô tả

Cho một bảng ô vuông gồm n hàng và m cột. Ô ở hàng x, cột y được ký hiệu là (x,y) với 1xn1ym.

Ban đầu bạn đứng ở ô (1,1). Mỗi bước đi, từ ô (x,y) đang đứng bạn có thể nhảy theo một véc-tơ (dx,dy) bất kỳ khác véc-tơ không (nghĩa là (dx,dy)(0,0)) để chuyển đến ô (x+dx,y+dy). Bạn không được nhảy ra ngoài bảng, và không được dùng lại cùng một véc-tơ (dx,dy) hai lần.

Hãy tìm một hành trình đi qua mỗi ô của bảng đúng một lần (ô xuất phát (1,1) được tính là đã thăm), sao cho tất cả các véc-tơ nhảy giữa hai ô liên tiếp đều đôi một khác nhau.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên dương nm.

Dữ liệu ra

Nếu không tồn tại hành trình thỏa mãn, in ra 1.

Ngược lại, in ra n·m dòng, dòng thứ i chứa hai số nguyên xiyi — tọa độ ô được thăm thứ i theo thứ tự hành trình. Các ô phải đôi một khác nhau, các véc-tơ nhảy giữa hai ô liên tiếp phải đôi một khác nhau, và ô đầu tiên phải là (1,1).

Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1n·m106

Ví dụ

Input Output Giải thích
2 3 1 1
2 3
1 2
2 2
1 3
2 1
Các véc-tơ nhảy lần lượt là (1,2),(1,1),(1,0),(1,1),(1,2) — tất cả đều khác nhau, và cả 6 ô đều được thăm đúng một lần.
1 1 1 1 Bảng chỉ có một ô, không cần nhảy lần nào.

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