| Codeforces Round 1082 (Div. 2) |
|---|
| Закончено |
Дана строка $$$T$$$ длины $$$n$$$, такая что $$$T_i=$$$ 'a' для всех нечетных $$$i$$$ и $$$T_i=$$$ 'b' для всех четных $$$i$$$.
Однажды Боб сгенерировал строку $$$S$$$ с помощью следующего алгоритма.
Затем Боб написал сгенерированную строку $$$S$$$ на бумажке и забыл о ней на несколько лет. Бумажка износилась, когда Боб её нашёл, и кто-то мог тайком изменить некоторые буквы. Конечно, Боб хочет знать, изменил ли кто-то строку!
Вам дана строка $$$X$$$ длины $$$n$$$, которая состоит из 'a', 'b' и '?'.
Пожалуйста, определите, существует ли строка $$$A$$$, которая удовлетворяет следующим условиям:
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 200\,000$$$).
Вторая строка каждого набора входных данных содержит строку $$$X$$$ длины $$$n$$$, состоящую из 'a', 'b' и '?'.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$200\,000$$$.
Если существует строка $$$A$$$, которая удовлетворяет всем условиям, выведите «YES» на отдельной строке.
Если не существует строки $$$A$$$, которая удовлетворяет всем условиям, выведите «NO» на отдельной строке.
Вы можете выводить ответ в любом регистре. Например, строки «yEs», «yes», «Yes» будут распознаны как положительные ответы.
45ababa5baaba5?b?ab6aa?b?b
YESNOYESNO
Для второго набора входных данных строка «baaba» не может быть сгенерирована с помощью описанного выше алгоритма.
Для третьего набора входных данных строка «abaab» может быть сгенерирована с помощью описанного выше алгоритма:
| Название |
|---|


