EduBrick

A. Сравнения подстрок

2000 мс · 256 МБ · всё или ничего

Дана строка ss и запросы: равны ли подстроки s[a..b]s[a..b] и s[c..d]s[c..d].

Сравнивать посимвольно нельзя: 10510^5 запросов по 10510^5 символов - это 101010^{10} операций. В тестах есть ровно такой случай - строка из ста тысяч одинаковых букв и сто тысяч запросов на всю строку целиком; измерено, что посимвольное решение считает его 2,7 секунды, а решение на хешах - 19 миллисекунд.

Формат ввода

В первой строке - строка ss (1≤∣s∣≤1051 \le \lvert s \rvert \le 10^5) из строчных латинских букв.

Во второй - число запросов mm (0≤m≤1050 \le m \le 10^5).

В следующих mm строках - четвёрки aa, bb, cc, dd (1≤a≤b≤∣s∣1 \le a \le b \le \lvert s \rvert, 1≤c≤d≤∣s∣1 \le c \le d \le \lvert s \rvert).

Формат вывода

Для каждого запроса выведите Yes, если подстроки совпадают, и No иначе.

Примеры

ввод
trololo
3
1 7 1 7
3 5 5 7
1 1 1 5
вывод
Yes
Yes
No
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.