Từ S thành T
Đề bài
Mô tả
Cho ba xâu , và gồm các chữ cái Latin thường. Bạn được phép thực hiện thao tác sau một số lần tuỳ ý (có thể là lần):
- Chọn một ký tự bất kỳ của , xoá nó khỏi rồi chèn nó vào tại vị trí bất kỳ: đầu xâu, cuối xâu, hoặc giữa hai ký tự liên tiếp của .
Ví dụ, nếu là aba và là de thì sau một thao tác ta có thể thu được ade, dae, dea (lấy chữ a), hoặc bde, dbe, deb (lấy chữ b).
Mục tiêu của bạn là thực hiện một dãy thao tác sao cho trở thành đúng bằng . Hãy xác định điều đó có khả thi hay không. Lưu ý rằng không bắt buộc phải dùng hết các ký tự của : những ký tự còn thừa được phép bỏ lại.
Có truy vấn độc lập với nhau.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên : số lượng truy vấn.
- Mỗi truy vấn được cho bởi ba dòng liên tiếp: dòng thứ nhất chứa xâu , dòng thứ hai chứa xâu , dòng thứ ba chứa xâu .
Dữ liệu ra
Với mỗi truy vấn, in ra trên một dòng riêng chữ YES nếu có thể biến thành , ngược lại in ra NO. Đáp án phải viết in hoa.
Ràng buộc
- , , chỉ gồm các chữ cái Latin thường.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 ab acxb cax a aaaa aaabbcc a aaaa aabbcc ab baaa aaaaa |
YES YES NO NO |
Truy vấn 1: lấy c rồi x từ p, ab → acb → acxb. Truy vấn 2: cần thêm ba chữ a, mà p có đúng ba chữ a (hai chữ b và hai chữ c còn lại được bỏ đi). Truy vấn 3: cần thêm ba chữ a nhưng p chỉ có hai. Truy vấn 4: số lượng ký tự đủ, nhưng thao tác không bao giờ làm thay đổi thứ tự tương đối của các ký tự sẵn có trong s, mà ab không xuất hiện theo đúng thứ tự đó trong baaa. |
| 6 a aaaa aaa a aaaa aa ac abbbc bbb ac abbbc bb ac abbbc bbbz ac abbbc bbzz |
YES NO YES NO YES NO |
Ba cặp truy vấn liên tiếp cho thấy ranh giới về số lượng: mỗi cặp chỉ khác nhau ở việc p có đủ hay thiếu đúng một ký tự cần thiết. Hai truy vấn cuối cho thấy ký tự z trong p là vô dụng nhưng vô hại, chỉ số lượng chữ b mới quyết định. |
Bình luận