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

Mùa Moo IV

Đề bài

Mô tả

Bessie có một bàn phím chỉ có hai phím: M và O. Cô ấy muốn gõ một chuỗi yêu thích S gồm N ký tự (chỉ chứa M và O).

Tuy nhiên, bàn phím bị nhiễm virus. Mỗi khi Bessie nhấn phím O, trước khi ký tự O được thêm vào cuối chuỗi, tất cả các ký tự đã gõ trước đó sẽ bị đảo ngược (M thành O và O thành M). Phím M hoạt động bình thường (chỉ thêm M vào cuối).

Hãy xác định xem Bessie có thể gõ được chuỗi S hay không, và nếu có, hãy đưa ra một dãy phím hợp lệ.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên Tk (1T104, k{0,1}).
  • Với mỗi test case:
    • Dòng 1: Số nguyên N (1N2×105).
    • Dòng 2: Chuỗi S gồm N ký tự M hoặc O.

Tổng N trên tất cả test case không vượt quá 4×105.

Dữ liệu ra

Với mỗi test case:

  • Nếu không thể gõ được chuỗi S: in NO.
  • Nếu có thể: in YES.
  • Nếu k=1 và đáp án là YES: in thêm dòng thứ hai là dãy phím cần nhấn (chuỗi gồm N ký tự M hoặc O).

Ràng buộc

  • 1T104
  • 1N2×105
  • Tổng N4×105

Ví dụ

Input Output Giải thích
2 0
3
MOO
5
OOMOO
YES
YES
Luôn tồn tại cách gõ.
2 1
3
MOO
5
OOMOO
YES
OMO
YES
MOOMO
Test case 1: Nhấn O -> "O", nhấn M -> "OM", nhấn O -> đảo "OM" thành "MO" rồi thêm O -> "MOO". Test case 2: Nhấn M -> "M", nhấn O -> đảo "M" thành "O" rồi thêm O -> "OO", nhấn O -> đảo "OO" thành "MM" rồi thêm O -> "MMO", nhấn M -> "MMOM", nhấn O -> đảo "MMOM" thành "OOMO" rồi thêm O -> "OOMOO".

Ghi chú

Đáp án luôn là YES - luôn tồn tại cách gõ hợp lệ.

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