Codeforces Round 903 (Div. 3) |
---|
Закончено |
Ане подарили строку $$$s$$$ длины $$$n$$$, привезённую из Рима. Строка $$$s$$$ состоит из маленьких латинских букв и на первый взгляд не вызывает подозрений. К строке была приложена инструкция.
Начало инструкции.
Палиндромом называется строка, которая читается одинаково как слева направо, так и справа налево. Например, строки «anna», «aboba», «level» являются палиндромами, а строки «gorilla», «banan», «off» — нет.
Подстрокой $$$[l \ldots r]$$$ строки $$$s$$$ называется строка $$$s_l s_{l+1} \ldots s_{r-1} s_r$$$. Например, подстрокой $$$[4 \ldots 6]$$$ строки «generation» является строка «era».
Строка называется красивой, если она не содержит подстроки длины хотя бы два, являющейся палиндромом. Например, строки «fox», «abcdef» и «yioy» красивые, а строки «xyxx», «yikjkitrb» — нет.
Когда к символу $$$s_i$$$ прибавляют целое положительное число $$$x$$$, он $$$x$$$ раз заменяется на следующий в алфавите, при этом «z» заменяется на «a».
Когда к подстроке $$$[l, r]$$$ строки $$$s$$$ прибавляют целое положительное число $$$x$$$, она превращается в строку $$$s_1 s_2 \ldots s_{l-1} (s_l + x) (s_{l+1} + x) \ldots (s_{r-1} + x) (s_r + x) s_{r+1} \ldots s_n$$$. Например, при прибавлении к подстроке $$$[2, 4]$$$ строки «abazaba» числа $$$6$$$, получится строка «ahgfaba».
Конец инструкции.
После прочтения инструкции Аня смирилась с тем, что ей предстоит ответить на $$$m$$$ запросов. Запросы бывают двух типов:
В первой строке дано целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Далее следуют описания наборов входных данных.
В первой строке даны целые числа $$$n$$$, $$$m$$$ ($$$1 \le n, m \le 2 \cdot 10^5$$$) — длина строки $$$s$$$ и количество запросов.
Во второй строке дана строка $$$s$$$ длины $$$n$$$, состоящая из маленьких букв латинского алфавита.
Следующие $$$m$$$ строк содержат запросы:
Гарантируется, что сумма $$$n$$$ и сумма $$$m$$$ по всем наборам входных данных не превосходят $$$2 \cdot 10^5$$$.
Для каждого запроса второго типа выведите «YES», если подстрока $$$[l \ldots r]$$$ строки $$$s$$$ является красивой, в противном случае выведите «NO».
Вы можете выводить «YES» и «NO» в любом регистре (например, строки «yEs», «yes», «Yes» и «YES» будут распознаны как положительный ответ).
512 8tedubcyyxopz2 2 51 4 8 22 1 71 3 5 401 9 11 31 10 10 92 4 102 10 1210 4ubnxwwgzjt2 4 102 10 101 6 10 82 7 711 3hntcxfxyhtu1 4 6 12 4 101 4 10 2113 2yxhlmzfhqctir1 5 9 31 8 13 152 3bp1 1 2 151 1 2 181 2 2 1000000000
YES NO NO YES NO YES YES YES
В первом наборе входных данных первого теста происходит следующее:
Название |
---|