Олимпиадный тренинг

Задача . D. Экзамен Славика


У Славика очень сложный экзамен, и ему нужна ваша помощь, чтобы его сдать. Вот задача, с которой он столкнулся:

Дана строка \(s\), которая состоит из строчных английских букв и, возможно, нуля или более «?».

Славик должен заменить каждый «?» на строчную английскую букву так, чтобы строка \(t\) стала подпоследовательностью (необязательно непрерывной) строки \(s\).

Выведите любую подходящую строку или скажите, что это невозможно, если не существует строки, которая соответствует условиям.

Входные данные

Первая строка содержит одно целое число \(T\) (\(1 \leq T \leq 10^4\)) — количество наборов входных данных.

Первая строка каждого набора входных данных содержит одну строку \(s\) (\(1 \leq |s| \leq 2 \cdot 10^5\), и \(s\) состоит только из строчных английских букв и символов «?»)  — исходная строка, которую вы имеете.

Вторая строка каждого набора входных данных содержит одну строку \(t\) (\(1 \leq |t| \leq |s|\), и \(t\) состоит только из строчных английских букв)  — строка, которая должна быть подпоследовательностью строки \(s\).

Сумма \(|s|\) по всем наборам входных данных не превышает \(2 \cdot 10^5\), \(|x|\) обозначает длину строки \(x\).

Выходные данные

Для каждого набора входных данных, если такой строки не существует, как описано в условии, выведите «NO» (без кавычек).

В противном случае выведите «YES» (без кавычек). Затем выведите одну строку — строку, которая соответствует всем условиям.

Вы можете выводить «YES» и «NO» в любом регистре (например, строки «yEs», «yes», и «Yes» будут признаны положительным ответом).

Если возможно несколько ответов, вы можете вывести любой из них.


Примеры
Входные данныеВыходные данные
1 5
?????
xbx
ab??e
abcde
ayy?x
a
ab??e
dac
paiu
mom
YES
xabax
YES
abcde
YES
ayyyx
NO
NO

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя