Module: 보르


Problem

6 /10


문자열 쿼리

Problem

처음에는 비어 있는 일련의 문자열이 있습니다. 이 행 집합에서 처리해야 하는 세 가지 작업이 있습니다.
  • 1초: 주어진 문자열을 집합에 추가합니다.
  • 2 k l: 길이가 l인 공통 접미사가 있는 집합에 k개의 문자열(반드시 고유하지는 않음)이 있는지 확인합니다. 이 접미사는 가장 클 필요가 없습니다.
  • 3 i: i 번째 작업에서 추가된 집합에서 문자열을 제거합니다(아직 제거되지 않은 경우).
입력:
첫 번째 줄에는 단일 정수 - 처리할 작업 수 q(1 <= q <= 105)가 포함됩니다.
다음으로 각 줄에는 요청에 대한 설명이 포함됩니다. 먼저 요청 유형을 나타내는 숫자 1, 2 또는 3입니다. 
이것이 첫 번째 유형의 쿼리인 경우 문자열 s가 아래에 제공되며 총 길이는 105를 초과하지 않습니다.
이것이 두 번째 유형의 쿼리라면 두 개의 정수 k와 l이 주어진다(1 <= k, l <= 105).
이것이 세 번째 유형의 요청이면 숫자 i가 주어집니다(1 <= i <= 현재 작업 번호). 여기서 i는 첫 번째 유형의 작업 번호입니다.

출력:
두 번째 유형의 각 쿼리에 대해 필요한 줄이 있으면 "YES"라는 단어를 별도의 줄에 인쇄하고 "NO" 그렇지 않으면.

예:
  <몸>
입력 출력
9
1아바
1 accba
2 2 2
2 2 3
1아아아
1 아바바
2 3 2
3 1
2 3 2

아니오

아니요