Xâu abacaba
Đề bài
Mô tả
Cho xâu độ dài 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 độ dài được gọi là xuất hiện trong tại vị trí nếu . 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 lần trong "ababa".
Dữ liệu vào
- Dòng đầu chứa số nguyên : 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 : độ dài xâu .
- Dòng thứ hai chứa xâu độ dài 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 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
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í ; 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í . 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 . Bộ 3: xâu đã chứa "abacaba" hai lần (vị trí và ) và không có dấu chấm hỏi nào để phá vỡ chúng. |
Bình luận