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

Задача . A. Типичная задача с интервью


FB-строка формируется следующим образом. Изначально она пустая. Рассмотрим все положительные целые числа, начиная с \(1\), в возрастающем порядке, и для каждого из них сделаем следующее:

  • если текущее число делится на \(3\), допишем F в конец FB-строки;
  • если текущее число делится на \(5\), допишем B в конец FB-строки.

Обратите внимание, что если число делится и на \(3\), и на \(5\), мы сначала приписываем F, потом B, не в обратном порядке.

Первые \(10\) символов FB-строки — это FBFFBFFBFB: первый символ F соответствует числу \(3\), следующий за ним символ (B) соответствует числу \(5\), следующий F соответствует числу \(6\), и так далее. Легко заметить, что эта строка бесконечна. Обозначим за \(f_i\) \(i\)-й символ FB-строки; например, \(f_1\) — это F, \(f_2\) — это B, \(f_3\) —- это F, \(f_4\) — это F, и так далее.

Нам дана строка \(s\), состоящая из символов F и/или B. Вы должны определить, является ли она подстрокой (непрерывной подпоследовательностью) FB-строки. Другими словами, проверьте, можно ли выбрать два целых числа \(l\) и \(r\) (\(1 \le l \le r\)) так, чтобы строка \(f_l f_{l+1} f_{l+2} \dots f_r\) была в точности равна \(s\).

Например:

  • FFB — подстрока FB-строки: можно выбрать \(l = 3\) и \(r = 5\), строка \(f_3 f_4 f_5\) — это в точности FFB;
  • BFFBFFBF — подстрока FB-строки: можно выбрать \(l = 2\) и \(r = 9\), строка \(f_2 f_3 f_4 \dots f_9\)— это в точности BFFBFFBF;
  • BBB — не подстрока FB-строки.
Входные данные

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

Каждый набор входных данных состоит из двух строк. В первой из них задано одно целое число \(k\) (\(1 \le k \le 10\)) — количество символов в \(s\). Во второй задана строка \(s\), состоящая из ровно \(k\) символов. Каждый символ \(s\) — либо F, либо B.

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

Для каждого набора входных данных выведите YES, если \(s\) — подстрока FB-строки, или NO, если это не так.

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


Примеры
Входные данныеВыходные данные
1 3
3
FFB
8
BFFBFFBF
3
BBB
YES
YES
NO

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

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