Trò chơi xâu con

Đề bài

Mô tả

Mike và Ann chơi một trò chơi với xâu s gồm các chữ cái latin in thường và một chỉ số k (0k<|s|).

Ban đầu cặp biên (l,r)=(k,k), nghĩa là xâu con đang xét là s[l,r]=s[k]. Hai người chơi luân phiên đi nước (Ann đi trước), mỗi nước là:

  • Chọn l,r thoả ll, rr và xâu con s[l,r] nhỏ hơn s[l,r] theo thứ tự từ điển. Cập nhật l:=l,r:=r.

Người không thể đi nước hợp lệ sẽ thua. Cả hai chơi tối ưu.

Với mỗi k từ 0 đến |s|1, hãy xác định ai là người thắng.

Dữ liệu vào

Một dòng duy nhất chứa xâu s (1|s|5·105) gồm các chữ cái latin in thường.

Dữ liệu ra

In ra |s| dòng. Dòng thứ i (đánh số từ 0) in Ann nếu Ann thắng khi k=i, ngược lại in Mike.

Ràng buộc

  • 1|s|5·105
  • s chỉ gồm chữ cái latin in thường.

Ví dụ

Input Output Giải thích
abba Mike
Ann
Ann
Mike
Tại k=0, xâu con bắt đầu là a. Không có ký tự nào bên trái nhỏ hơn a nên Ann không đi được, Mike thắng. Tại k=1, ký tự a ở vị trí 0 nhỏ hơn b nên Ann thắng. Tương tự với k=2. Tại k=3, ký tự nhỏ nhất bên trái (kể cả chính nó) là a, nhưng a < a sai, Ann thua.
cba Mike
Mike
Mike
Xâu giảm dần nên với mọi k, không có ký tự nào bên trái nhỏ hơn s[k]. Ann luô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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0