Trò chơi với xâu

Đề bài

Mô tả

Hai người chơi một trò chơi trên một xâu ký tự. Ban đầu họ có chung một xâu s, được viết trên một mảnh giấy (mỗi ký tự một ô). Hai người luân phiên đi nước; ai không đi được nữa thì thua.

Một nước đi được mô tả như sau:

  1. Người chơi chọn một mảnh giấy còn lại (ban đầu chỉ có một mảnh duy nhất). Gọi xâu trên mảnh đó là t=t1t2t|t|.
  2. Người chơi chọn một vị trí i (1i|t|) sao cho tồn tại số nguyên dương l với il1, i+l|t|tik=ti+k với mọi 1kl.
  3. Người chơi cắt ô tại vị trí i. Mảnh giấy được tách thành ba mảnh mới: t1ti1, một mảnh chỉ chứa ký tự ti, và ti+1t|t|.

Chú ý điều kiện ở bước 2 tương đương với i là vị trí trong của tti1=ti+1 (chọn l=1 là đủ).

Cả hai người chơi tối ưu. Hãy xác định người thắng. Nếu người đi đầu thắng, hãy in thêm vị trí i nhỏ nhất mà người đi đầu có thể cắt trong nước đi đầu tiên để bảo đảm thắng.

Dữ liệu vào

Một dòng chứa xâu s chỉ gồm các chữ cái La-tinh thường.

Dữ liệu ra

  • Nếu người đi sau thắng, in một dòng Second.
  • Ngược lại, in First trên dòng đầu và vị trí i nhỏ nhất là nước đi đầu tiên thắng trên dòng thứ hai.

Ràng buộc

  • 1|s|5000.

Ví dụ

Input Output Giải thích
abcde Second Không vị trí i nào có si1=si+1, nên người đi đầu không có nước đi.
abacaba First
2
Người đi đầu có nhiều nước đi thắng; vị trí i=2 là nhỏ nhất (lúc đó s1=s3= 'a').

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