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

Задача . A. Построение строки


Задача

Темы: реализация *800

Вам дана строка \(s\). Вы должны определить, можно ли получить строку \(s\) из строк aa, aaa, bb и/или bbb их конкатенацией. Строки aa, aaa, bb и/или bbb можно использовать в любом порядке любое количество раз.

Например:

  • aaaabbb можно получить как aa \(+\) aa \(+\) bbb;
  • bbaaaaabbb можно получить как bb \(+\) aaa \(+\) aa \(+\) bbb;
  • aaaaaa можно получить как aa \(+\) aa \(+\) aa;
  • abab нельзя получить из строк aa, aaa, bb и/или bbb.
Входные данные

В первой строке задано одно целое число \(t\) (\(1 \le t \le 1000\)) — количество наборов входных данных.

Каждый набор входных данных состоит из единственной строки \(s\) (\(1 \le |s| \le 50\)), состоящей из символов a и/или b.

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

Для каждого набора входных данных выведите YES, если возможно построить строку \(s\). Иначе выведите NO.

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

Примечание

Первые четыре набора входных данных разобраны в условии.


Примеры
Входные данныеВыходные данные
1 8
aaaabbb
bbaaaaabbb
aaaaaa
abab
a
b
aaaab
bbaaa
YES
YES
YES
NO
NO
NO
NO
YES

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

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