Xâu abacaba

Đề bài

Mô tả

Cho xâu s độ dài n gồm các chữ cái Latin thường và dấu chấm hỏi. Bạn phải thay mỗi dấu chấm hỏi bằng đúng một chữ cái Latin thường (các dấu chấm hỏi khác nhau có thể được thay bằng các chữ cái khác nhau).

Hỏi có cách thay nào khiến xâu thu được chứa xâu con liên tiếp "abacaba" đúng một lần hay không?

Xâu t độ dài m được gọi là xuất hiện trong s tại vị trí i nếu s[i..i+m−1]=t. Các lần xuất hiện được đếm kể cả khi chúng gối lên nhau: chẳng hạn "aba" xuất hiện 2 lần trong "ababa".

Dữ liệu vào

  • Dòng đầu chứa số nguyên T: số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa số nguyên n: độ dài xâu s.
    • Dòng thứ hai chứa xâu s độ dài n gồm các chữ cái Latin thường và dấu chấm hỏi.

Dữ liệu ra

Với mỗi bộ dữ liệu:

  • In ra "No" nếu không có cách thay nào thoả mãn.
  • Ngược lại in ra "Yes" trên một dòng, dòng tiếp theo in ra xâu kết quả gồm n chữ cái Latin thường. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Chữ hoa hay chữ thường trong "Yes" và "No" đều được chấp nhận.

Ràng buộc

  • 1≤T≤5000
  • 7≤n≤50

Ví dụ

Input Output Giải thích
3
7
abacaba
7
???????
11
aba?abacaba
Yes
abacaba
Yes
abacaba
Yes
abazabacaba
Bộ 1: xâu đã có sẵn đúng một lần xuất hiện, không có dấu chấm hỏi nào để thay. Bộ 2: bảy dấu chấm hỏi được thay thành đúng "abacaba". Bộ 3: xâu đã chứa "abacaba" ở vị trí 5; dấu chấm hỏi phải được thay bằng chữ cái không tạo thêm lần xuất hiện thứ hai, ở đây chọn "z".
3
11
abacaba?aba
15
asdf???f???qwer
11
abacabacaba
Yes
abacabazaba
No
No
Bộ 1: giữ nguyên lần xuất hiện ở vị trí 1. Bộ 2: chỉ có ba dấu chấm hỏi liên tiếp nên không thể tạo ra "abacaba" dài 7. Bộ 3: xâu đã chứa "abacaba" hai lần (vị trí 1 và 5) và không có dấu chấm hỏi nào để phá vỡ chúng.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0