D. Достижимые строки
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В этой задаче мы будем иметь дело с бинарными строками. Каждый символ бинарной строки — это либо 0, либо 1. Мы также будем иметь дело с подстроками; напомним, что подстрока — это непрерывная подпоследовательность строки. Для удобства будем обозначать подстроку строки $$$s$$$, начинающуюся в позиции $$$l$$$ и заканчивающуюся в позиции $$$r$$$, как $$$s[l \dots r]$$$. Символы в строках нумернуются с $$$1$$$.

Мы можем проводить операции над строками. Есть две различных операции: заменить подстроку 011 на 110, или заменить подстроку 110 на 011. Например, если мы применим ровно одну операцию к строке 110011110, она может превратиться в 011011110, 110110110, или 110011011.

Бинарная строка $$$a$$$ считается достижимой из бинарной строки $$$b$$$, если существует последовательность $$$s_1$$$, $$$s_2$$$, ..., $$$s_k$$$, такая, что $$$s_1 = a$$$, $$$s_k = b$$$, и для каждого $$$i \in [1, k - 1]$$$, $$$s_i$$$ можно превратить в $$$s_{i + 1}$$$ ровно за одну операцию. Обратите внимание, что $$$k$$$ может быть равно $$$1$$$, т. е., каждая строка достижима из самой себя.

Вам дана строка $$$t$$$ и $$$q$$$ запросов к ней. Каждый запрос состоит из трех целых чисел $$$l_1$$$, $$$l_2$$$ и $$$len$$$. Для каждого запроса вы должны определить, является ли $$$t[l_1 \dots l_1 + len - 1]$$$ достижимой из $$$t[l_2 \dots l_2 + len - 1]$$$.

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

В первой строке содержится одно целое число $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$) — длина строки $$$t$$$.

Во второй строке задана одна строка $$$t$$$ ($$$|t| = n$$$). Каждый символ $$$t$$$ равен либо 0, либо 1.

В третьей строке задано одно целое число $$$q$$$ ($$$1 \le q \le 2 \cdot 10^5$$$) — количество запросов.

Затем следуют $$$q$$$ строк, в каждой из которых содержится описание очередного запроса. В $$$i$$$-й строке заданы три целых числа $$$l_1$$$, $$$l_2$$$ и $$$len$$$ ($$$1 \le l_1, l_2 \le |t|$$$, $$$1 \le len \le |t| - \max(l_1, l_2) + 1$$$) для $$$i$$$-го запроса.

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

Для каждого запроса выведите либо YES, если $$$t[l_1 \dots l_1 + len - 1]$$$ достижима из $$$t[l_2 \dots l_2 + len - 1]$$$, либо NO в противном случае. Вы можете выводить каждую букву в любом регистре.

Пример
Входные данные
5
11011
3
1 3 3
1 4 2
1 2 3
Выходные данные
Yes
Yes
No