만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

AB

면접 대비

시간 제한2초메모리 제한1024 MB

요약
문자열 집합 A와 B에 삽입과 삭제를 처리하고, 질의 문자열 S를 A 원소의 접두사와 B 원소의 접미사로 나누는 방법의 수를 구합니다.
난이도

보통10점 중 5점

유형
해시맵, 문자열, 트라이
정답자
아직 제출이 없습니다

문제

집합 AA, BB와 문자열 SS에 대하여, 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • add A SS: AA에 SS를 추가한다.
  • delete A SS: AA에서 SS를 제거한다.
  • add B SS: BB에 SS를 추가한다.
  • delete B SS: BB에서 SS를 제거한다.
  • find SS: AA의 원소의 접두사와 BB의 원소의 접미사를 이어 붙여 SS가 되는 경우의 수를 출력한다. 원소가 다르거나 접두사(접미사)가 다르면 다른 경우로 센다. 빈 접두사(접미사)는 고려하지 않는다.

초기에 AA, BB는 비어 있으며, 이미 존재하는 원소를 추가하거나 존재하지 않는 원소를 제거하는 쿼리는 주어지지 않는다.

입력

첫째 줄에 쿼리의 개수 QQ가 주어진다. 1≤Q≤1 0001 \leq Q \leq 1\,000

둘째 줄부터 QQ개의 줄에 걸쳐 쿼리가 한 줄에 하나씩 주어진다. 쿼리에 등장하는 문자열은 영어 소문자로 이루어져 있으며, 길이는 1 이상 1,000 이하이다.

find 쿼리는 적어도 한 번 주어진다.

출력

find 쿼리의 답을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    7
    add A aba
    add A a
    add A ab
    add B bab
    add B b
    add B ab
    find abab
    
    예상 출력
    10
    
  2. 예제 2

    입력
    8
    add A a
    add B bcd
    add A ab
    add B cd
    find abcd
    delete A a
    delete B bcd
    find abcd
    
    예상 출력
    4
    1