12020. Збіг чи ні


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надано рядки \(S\) і \(T\), що складаються з малих англійських літер і ?. Тут виконується \(∣S∣>∣T∣\) (для рядка \(X\) \(∣X∣\) позначає довжину \(X\)).

Два рядки \(X\) і \(Y\), такі, що \(∣X∣=∣Y∣\), як кажуть, збігаються тоді і тільки тоді, коли:

  • можна зробити \(X\) рівним \(Y\), замінивши кожен ? в \(X\) і \(Y\) незалежно від будь-якої англійської літери.

Розв’яжіть наступну задачу для кожного \(x=0,1,…,∣T∣\):

  • Нехай \( S ′\) — рядок довжини \(∣T∣\), отриманий конкатенацією перших \(x\) символів і останніх \((∣T∣−x)\) символів \(S\) без зміни порядку.

Виведіть Yes, якщо \(S ′\) і \(T\) збігаються, і No в іншому випадку.

Обмеження

  • \(S\) і \(T\) - це рядки, що складаються з малих англійських літер і ?.
  • \(1≤∣T∣<∣S∣≤3×10^5\)

Формат вхідних даних

Перший рядок містить \(S\).

Наступний   рядок містить \(T\).

Формат вихідних даних

У вихідний потік виведіть \((∣T∣+1)\) рядків. В \(i\)-му рядку має бути відповідь на \(x=i−1\).

Приклад вхідних даних

a?c
b?

Приклад вихідних даних

Yes
No
No

Коли \(x=0, S ′\) дорівнює ?c. Тут ми можемо замінити 1-й символ \(S ′\), ?, на b і 2-й символ \(T\), ?, на c, щоб зробити \(S ′\) рівним \(T\), таким чином \(S ′\) і \(T\) збігаються. Таким чином, Yes має бути виведено в першому рядку.

Коли \(x=1\) і 2 відповідно, \(S ′\) є ac і a?, жоден з яких не збігається з \(T\). Таким чином, виводимо No в другому та третьому рядках.

Приклад вхідних даних

algorytm
?????

Приклад вихідних даних

Yes
Yes
Yes
Yes
Yes
Yes

Приклад вхідних даних

beginner
contest

Приклад вихідних даних

No
No
No
No
No
No
No
No

Коментарі

Ще немає коментарів.