Как всем известно, любая ДНК состоит из нуклеотидов. Нуклеотиды могут быть четырех типов: «A», «T», «G», «C». ДНК в свою очередь является последовательностью нуклеотидов. Ученые получили возможность проследить за эволюцией очень редкого вида, ДНК которого описывается строкой s.
Эволюция вида представляет собой последовательность изменений в ДНК. Любое изменение в ДНК можно представить как изменение некоторого нуклеотида, например, в ДНК «AAGC» может произойти такое изменение: второй нуклеотид изменится на нуклеотид «T», в результате чего ДНК станет равной «ATGC».
Кроме того, ученым известно, что некоторые участки ДНК могли быть атакованы неизвестными инфекциями. Инфекцию также можно представить в виде последовательности нуклеотидов. Ученым интересно, были ли вызваны инфекциями какие-то изменения в ДНК. Поэтому иногда ученые хотят оценить степень воздействия интересующей их инфекции на участок ДНК по следующим правилам:
Помимо основной работы разработчиком, Иннокентий интересуется биоинформатикой, поэтому ученые обратились именно к нему за помощью. Однако, Иннокентий занят проведением VK Cup, поэтому он переложил эту задачу на участников. Помогите ученым!
В первой строке находится строка s (1 ≤ |s| ≤ 105), описывающая изначальную ДНК. Она состоит только из заглавных английских букв «A», «T», «G» и «C».
В следующей строке находится целое число q (1 ≤ q ≤ 105) — число событий.
Далее следуют q строк, содержащие описание событий. Каждая из этих строк имеет один из двух видов:
Для каждого запроса ученых (запроса второго типа) выведите в новой строке одно число — искомую степень воздействия инфекции на участок ДНК.
ATGCATGC
4
2 1 8 ATGC
2 2 6 TTT
1 4 T
2 2 6 TA
8
2
4
GAGTTGTTAA
6
2 3 4 TATGGTG
1 1 T
1 6 G
2 5 9 AGTAATA
1 10 G
2 2 6 TTGT
0
3
1
Рассмотрим первый пример. В первом событии второго типа все символы совпадают, поэтому ответ 8. Во втором запросе мы сравниваем строку «TTTTT...» и подстроку «TGCAT». Здесь два совпадения. В третьем запросе, после изменения ДНК, мы сравниваем строку «TATAT...» с подстрокой «TGTAT». Здесь 4 совпадения.
Название |
---|