Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Различные префиксы

(Время: 5 сек. Память: 128 Мб Сложность: 42%)

Вася придумал задачу, в которой требовалось реализовать три операции:

  1. добавить строку s в словарь (словарь может содержать одинаковые строки);
  2. удалить строку s из словаря (гарантируется, что такая строка уже была ранее добавлена);
  3. определить количество различных префиксов длины k.

Петя, прочитав условие, сказал, что это «баян» и многие олимпиадники знают, как решить данную задачу. Попробуйте и Вы решить её (ну или вспомнить решение).

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

Первая строка входного файла INPUT.TXT содержит целое число N – количество операций (2 ≤ N ≤ 105).

В следующих N строках описаны сами операции. В начале каждой строки содержится целое число type (1 ≤ type ≤ 3), обозначающее тип операции. Если тип операции равен 1 или 2, то далее дана строка s (|s| ≤ 105) состоящая из строчных английских букв, которую нужно добавить или удалить соответственно. Если тип равен 3, то далее следует одно целое число 1 ≤ k ≤ 105 - длина префикса.

Гарантируется, что суммарная длина всех строк в запросах не превышает 106.

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

В выходной файл OUTPUT.TXT для каждой операции 3 типа выведите в отдельной строке количество различных префиксов длины k.

Пример

INPUT.TXTOUTPUT.TXT
110
1 abracadabra
1 aba
3 2
3 3
1 bcad
3 2
3 3
2 aba
3 2
3 3
1
2
2
3
2
2

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 A. Простой шифр
 B. Лягушка
 C. Электронная очередь
 D. Производная
 E. Степени двойки
 F. Сыграем?
 G. Вася и отрезки
 H. Различные префиксы
 I. Взрывчатка
 J. Перестановка
 K. Многословие
 L. Подготовка к ЕГЭ

Красноярский краевой Дворец пионеров, (c)2006 - 2020, E-mail: admin@acmp.ru