Educational Codeforces Round 16 |
---|
Закончено |
Вам нужно обработать m запросов над множеством строк D. Каждый запрос одного из трёх типов:
Заметим, что вам требуется решить задачу в режиме online. Это значит, что вы не можете сразу считать все входные данные. Вы можете считать очередной запрос только после того как выведите ответ на последний запрос третьего типа. Используйте функции fflush в языке C++ и BufferedWriter.flush в языке Java после каждого вывода вашей программы.
В первой строке находится целое число m (1 ≤ m ≤ 3·105) — количество запросов.
В каждой из следующих m строк находится целое число t (1 ≤ t ≤ 3) и непустая строка s — тип запроса и строка запроса. Все строки состоят только из строчных букв английского алфавита.
Сумма длин всех строк во входных данных не превосходит 3·105.
Для каждого запроса третьего типа выведите одно целое число c — требуемое количество вхождений в строку s.
5
1 abc
3 abcabc
2 abc
1 aba
3 abababc
2
2
10
1 abc
1 bcd
1 abcd
3 abcd
2 abcd
3 abcd
2 bcd
3 abcd
2 abc
3 abcd
3
2
1
0
Название |
---|