Задача №115248. a, ab, ba строки
Дана строка \(S\) длины \(n\), состоящая из символов « a » и « b », и \(q\) запросов. Запросы бывают двух видов:
- заменить \(i\)-й символ на противоположный (то есть « a » меняется на « b », а « b » на « a »);
- проверить, можно ли разбить отрезок строки с \(l\)-го по \(r\)-й символ на подстроки « a », « ab » и « ba ».
Для каждого запроса второго вида выведите ответ на запрос.
В первой строке дано одно число \(n\) — длина строки (\(1 \le n \le 100\,000\)).
Во второй строке дана сама строка \(S\), состоящая из символов « a » и « b ».
В третьей строке дано число \(q\) — количество запросов (\(1 \le q \le 100\,000\)).
Каждая из следующих \(q\) строк начинается с целого числа \(type\) — типа запроса (\(1 \le type \le 2\)).
В запросах первого типа далее следует целое число \(i\) (\(1 \le i \le n\)).
В запросах второго типа далее следует пара целых чисел \(l\), \(r\) (\(1 \le l \le r \le n\)).
Для каждого запроса второго типа выведите « YES », если можно разбить строку как описано в условии, и « NO » иначе.
В первом примере подстроку из первого запроса можно представить в виде « ba », подстроку из второго запроса « bab » невозможно разбить на допустимые подстроки, после третьего запроса строка имеет вид « abbabaa », подстроку из четвертого запроса можно разбить следующим образом: « ba|ba|a »
7 abbabba 4 2 3 4 2 3 5 1 6 2 3 7
YES NO YES