USACO 2026 - It's Mooin' Time IV

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bessie có một chiếc máy tính với bàn phím chỉ có hai chữ cái là MO.

Bessie muốn gõ tiếng bò yêu thích của mình là \(S\), gồm \(N\) chữ cái, mỗi chữ cái là M hoặc O. Tuy nhiên, máy tính của cô đã bị nhiễm vi-rút. Mỗi khi cô cố gõ chữ O, mọi chữ cái cô đã gõ từ trước đến lúc đó đều bị đảo, từ M thành O hoặc từ O thành M, rồi chữ O mới xuất hiện.

Liệu Bessie có thể gõ được tiếng bò yêu thích của mình hay không?

Ngoài ra, Bessie được cho một tham số \(k\) có giá trị bằng \(0\) hoặc \(1\).

  • Nếu \(k=0\), Bessie chỉ cần xác định liệu có thể gõ được tiếng bò yêu thích của mình hay không.
  • Nếu \(k=1\), Bessie còn phải đưa ra một ví dụ về dãy phím cần nhấn để gõ được tiếng bò yêu thích của mình.

Dữ liệu vào

Dòng đầu tiên chứa \(T\), số lượng bộ test độc lập (\(1\le T\le 10^4\)), và \(k\) (\(0\le k\le 1\)).

Dòng đầu tiên của mỗi bộ test chứa \(N\) (\(1\le N\le 2\cdot 10^5\)).

Dòng thứ hai của mỗi bộ test chứa \(S\). Đảm bảo rằng \(S\) không chứa ký tự nào ngoài MO.

Tổng \(N\) trên tất cả các bộ test không vượt quá \(4\cdot 10^5\).

Dữ liệu ra

Với mỗi bộ test, hãy in một hoặc hai dòng theo quy trình sau.

Nếu Bessie không thể gõ được \(S\), hãy in NO trên một dòng.

Ngược lại, ở dòng đầu tiên hãy in YES. Ngoài ra, nếu \(k=1\), ở dòng thứ hai hãy in một xâu độ dài \(N\), gồm các ký tự theo đúng thứ tự Bessie cần gõ để tạo ra tiếng bò yêu thích của mình. Nếu có nhiều xâu thỏa mãn, có thể in bất kỳ xâu nào.

Ví dụ

Ví dụ 1

Input
2 0
3
MOO
5
OOMOO
Output
YES
YES

Ví dụ 2

Input
2 1
3
MOO
5
OOMOO
Output
YES
OMO
YES
MOOMO
Note

Khi Bessie lần lượt gõ MOOMO, các chữ cái thay đổi như sau:

  1. Trước khi gõ chữ M đầu tiên, Bessie có một xâu rỗng. Sau đó, cô có xâu M.
  2. Sau khi gõ chữ O đầu tiên, chữ M bị đảo thành O, rồi chữ O được nối vào để tạo thành OO.
  3. Sau khi gõ chữ O thứ hai, OO bị đảo thành MM, rồi chữ O được nối vào để tạo thành MMO.
  4. Sau khi gõ chữ M thứ hai, Bessie có xâu MMOM.
  5. Sau khi gõ chữ O cuối cùng, xâu MMOM bị đảo thành OOMO, rồi chữ O được nối vào để tạo thành OOMOO như mong muốn.

Phân nhóm

  • Test 3–4: \(k=0\).
  • Test 5–6: \(k=1\), \(T\le 10^3\), \(N\le 10\).
  • Test 7–9: \(k=1\), \(T\le 10\), \(N\le 1000\).
  • Test 10–16: \(k=1\).

Nguồn

USACO 2026 Contest 2, Bronze Division — bài gốc It's Mooin' Time IV, tác giả: Nick Wu.
https://usaco.org/index.php?page=viewproblem2&cpid=1563

Bình luận (1)

Mới nhất
Tải bình luận...

Kỳ thi: