An toàn thông tin

View as PDF

Submit solution

Points: 0.10
Time limit: 1.0s
Memory limit: 64M
Input: stdin
Output: stdout

Author:
Problem type

Trong CLB lập trình H3.2, có hai bạn Hà và Vũ. Một ngày nọ, bạn Hà muốn gửi một thông điệp cho bạn Vũ nhưng vì hai bạn rất nhạy cảm với sự an toàn thông tin, sợ người khác biết nên đã bỏ thời gian một ngày để mã hóa nó. Thông điệp đó có thể coi là một từ gồm các ký tự tiếng Anh viết in thường và có độ dài không quá ~10^5.~ Với mỗi từ ~s~ như thế, Hà tiến hành ba bước như sau (theo đúng thứ tự):

  • Hoán đổi các vị trí của ký tự có trong từ ~s~.
  • Thêm một vài ký tự đằng trước ~s~ (có thể không thêm gì cả).
  • Thêm một vài ký tự đằng sau ~s~ (có thể không thêm gì cả).

Sau khi mã hóa xong được thông điệp ~r~, Hà sẽ gửi cho bạn Vũ đọc. Do thực hiện gấp gáp nên Hà sợ rằng có bị nhầm lẫn và muốn kiểm tra xem chuỗi ~r~ có thể nhận được từ chuỗi ~s~ thông qua các bước mã hóa ở trên hay không. Bạn hãy giúp Hà thực hiện điều đó nhé.

Input

Dòng đầu tiên là ~T~, cho biết số lượng bộ tests, trong đó ~1 \le T \le 5~. Mỗi hai dòng tiếp theo sẽ có thông tin của: chuỗi ~r~, thông điệp đã mã hóa mà bạn Vũ nhận được, độ dài không quá ~10^5~, chuỗi ~s~, thông điệp gốc của bạn Hà, độ dài không quá ~10^5.~

Output

Ứng với mỗi test, in ra "YES" nếu ~r~ có thể nhận được từ ~s~ thông qua bước mã hóa trên. Ngược lại thì in ra "NO".

Sample input 1

1
abcd
cb

Sample output 1

YES

Sample input 2

1
aabbbbb
aba

Sample output 2

YES

Sample input 3

1
abcxyz
acz

Sample output 3

NO

Giải thích: Ở VD 1, ta thực hiện qua các bước như sau: ~cb \to bc \to abc \to abcd~. Ở VD 2, ta thực hiện qua các bước như sau: ~aba \to aab \to aab \to aabbbbb~. Ở VD 3, ta có thể chỉ ra được rằng ~abcxyz~ không sinh ra từ ~acz~.


Comments

Please read the guidelines before commenting.


There are no comments at the moment.