Nước cờ chiến thắng

Đề bài

Mô tả

Hai người chơi cờ ca-rô trên bảng 4×4. Người thứ nhất đi trước và luôn đánh dấu X, người thứ hai đánh dấu O. Người chiến thắng là người đầu tiên tạo được ba dấu của mình nằm liền kề nhau trên một hàng ngang, một cột dọc, hoặc một đường chéo.

Ván đấu đang dở dang và đến lượt người chơi X đi. Cho trạng thái hiện tại của bảng (đảm bảo là một trạng thái hợp lệ và ván chưa kết thúc). Hãy xác định xem người chơi X có thể thắng ngay bằng đúng một nước đi hay không, tức là có tồn tại một ô trống mà khi đặt X vào đó sẽ tạo được ba dấu X liền kề nhau trên một đường thẳng (ngang, dọc, hoặc chéo).

Dữ liệu vào

Gồm 4 dòng, mỗi dòng gồm 4 ký tự mô tả một hàng của bảng. Mỗi ký tự là một trong:

  • dấu chấm . biểu diễn ô trống,
  • chữ x biểu diễn dấu X,
  • chữ o biểu diễn dấu O.

Dữ liệu ra

In ra YES nếu người chơi X có thể thắng chỉ bằng một nước đi, ngược lại in ra NO.

Ràng buộc

  • Bảng có kích thước 4×4.
  • Trạng thái đầu vào luôn hợp lệ và ván chưa kết thúc (chưa có ba dấu liền kề của bất kỳ người chơi nào).
  • Bảng có thể hoàn toàn trống, nghĩa là hai người rời đi mà chưa đánh dấu nào.

Ví dụ

Input Output Giải thích
xx..
.oo.
x...
oox.
YES Đặt X vào ô trống thứ ba của hàng đầu tạo thành ba dấu X liền kề xx x trên hàng ngang.
x.ox
ox..
x.o.
oo.x
NO Không có nước đi nào tạo được ba dấu X liền kề.
x..x
..oo
o...
x.xo
YES Đặt X vào ô giữa của hàng cuối để có ba dấu X liền kề trên hàng ngang.
....
....
....
....
NO Bảng trống, đặt một dấu X không thể tạo được ba dấu liền kề.

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