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

Задача . A. Сережа и алгоритм


Сережа любит самые разные алгоритмы. Недавно он придумал новый алгоритм, на вход которому подается строка. Обозначим входную строку алгоритма как q = q1q2... qk. Алгоритм состоит из двух шагов:

  1. Найти любую непрерывную подпоследовательность (подстроку) из трех символов строки q, которая не равна ни одной из строк «zyx», «xzy», «yxz». Если q не содержит ни одной такой подпоследовательности, завершить алгоритм, иначе перейти к шагу 2.
  2. Переставить буквы в найденной подпоследовательности случайным образом, перейти к шагу 1.

Сережа считает, что алгоритм корректно работает на строке q, если существует хоть какая-то ненулевая вероятность того, что алгоритм завершится. Если же алгоритм в любом случае будет работать бесконечно долго на строке, считается, что он работает некорректно на ней.

Сережа хочет протестировать свой алгоритм. Для этого у него есть строка s = s1s2... sn, состоящая из n символов. Мальчик проводит серию из m тестов. В качестве i-го теста он подает на вход алгоритму строку slisli + 1... sri (1 ≤ li ≤ ri ≤ n). К сожалению, его реализация алгоритма работает слишком долго, поэтому Сережа обратился к вам за помощью. Для каждого теста (li, ri) определите, отработает алгоритм корректно на этом тесте или нет.

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

В первой строке содержится непустая строка s, ее длина (n) не превосходит 105. Гарантируется, что строка s состоит только из символов: 'x', 'y', 'z'.

Вторая строка содержит целое число m (1 ≤ m ≤ 105) — количество тестов. Следующие m строк содержат сами тесты. В i-ой строке записана пара целых чисел li, ri (1 ≤ li ≤ ri ≤ n).

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

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

Примечание

В первом тесте в первом и втором тесте алгоритм всегда закончит работу за один шаг. В четвертом запросе можно получить строку «xzyx», на которой алгоритм закончит работу. В остальных запросах алгоритм работает некорректно.


Примеры
Входные данныеВыходные данные
1 zyxxxxxxyyz
5
5 5
1 3
1 11
1 4
3 6
YES
YES
NO
YES
NO

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

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