Trò chơi cắt giấy

Đề bài

Mô tả

Hai người chơi một trò chơi với một con dao và một tờ giấy hình chữ nhật kích thước n×m, được chia thành các ô vuông đơn vị bởi các đường lưới. Hai người lần lượt đi; ai không đi được sẽ thua.

Mỗi nước đi, người chơi dùng dao cắt tờ giấy dọc theo một đoạn nằm trên một đường lưới (không nhất thiết phải cắt từ mép này sang mép kia). Phần giấy mà lưỡi dao chạm vào được coi là đã bị cắt. Để trò chơi không kéo dài vô hạn, mỗi nước đi bắt buộc phải cắt thêm phần giấy chưa từng bị cắt trước đó (tức lưỡi dao phải chạm vào ít nhất một đoạn đơn vị chưa bị cắt).

Trò chơi kết thúc khi toàn bộ tờ giấy đã được cắt thành các ô 1×1. Trong suốt trò chơi, các mảnh giấy không được xê dịch. Không được cắt dọc theo mép của tờ giấy. Tọa độ hai đầu của mỗi vết cắt đều là số nguyên.

Cho tờ giấy n×m mà trên đó đã có sẵn k vết cắt. Hãy xác định ai là người thắng nếu cả hai cùng chơi tối ưu. Nếu người đi trước thắng, hãy chỉ ra một nước đi thắng đầu tiên của người đó.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k (kích thước tờ giấy và số vết cắt đã có).
  • k dòng tiếp theo, mỗi dòng chứa bốn số nguyên xb,yb,xe,ye là tọa độ hai đầu của một vết cắt đã có.

Mỗi vết cắt có độ dài khác 0, là đoạn thẳng đứng hoặc nằm ngang và không nằm trên mép tờ giấy. Các vết cắt có thể giao nhau, chồng lên nhau, thậm chí trùng nhau. Không đảm bảo rằng các vết cắt này thu được từ một ván chơi hợp lệ nào đó.

Dữ liệu ra

Nếu người đi sau thắng, in ra SECOND.

Ngược lại, dòng đầu in FIRST, dòng thứ hai in một nước đi thắng bất kỳ của người đi trước (tọa độ hai đầu vết cắt, theo đúng định dạng của dữ liệu vào). Nếu có nhiều nước đi thắng, in ra nước nào cũng được.

Ràng buộc

  • 1n,m109
  • 0k105
  • 0xb,xen, 0yb,yem

Ví dụ

Input Output Giải thích
2 1 0 FIRST
1 0 1 1
Tờ giấy 2×1 chỉ cần đúng một đoạn cắt dọc x=1 để chia hết. Người đi trước cắt đoạn đó và người đi sau không còn nước nào, nên người đi trước thắng. Bất kỳ nước cắt thắng hợp lệ nào cũng được chấp nhận.
2 2 4
0 1 2 1
0 1 2 1
1 2 1 0
1 1 1 2
SECOND Bốn vết cắt (kể cả trùng lặp) đã cắt trọn cả hai đường lưới trong x=1y=1, tờ giấy đã bị chia hết thành các ô 1×1. Người đi trước không còn nước đi nên thua.

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