만드는 중입니다

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

문자열 변환과 쿼리 2

면접 대비

시간 제한3초메모리 제한512 MB

요약
문자열에 문자 치환 쿼리를 차례로 적용하고, 2번 쿼리마다 같은 문자로 이루어진 가장 긴 연속 부분 문자열의 길이를 출력합니다.
난이도

쉬움10점 중 3점

유형
문자열, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

알파벳 대소문자로 이루어진 문자열 SS가 주어진다. 또한 SS에 대한 nn개의 질의가 저장된 질의 목록 AA가 주어진다. 질의는 다음 두 가지 유형 중 하나이다.

  • 유형 1은 1 i1 i2 형태이며, SS에 있는 모든 문자 i1i_1을 문자 i2i_2로 바꾼다. SS에 문자 i1i_1이 없으면 SS는 바뀌지 않는다.
  • 유형 2는 2 형태이다. 지금까지 주어진 유형 1의 질의를 순서대로 SS에 적용한 결과를 문자열 TT라고 하자. TT에서 같은 문자로만 이루어진 부분 문자열의 최대 길이를 출력한다. 부분 문자열은 TT에서 연속된 일부이다.

질의 목록 AA를 첫 번째 질의부터 순서대로 처리하면서 유형 2 질의의 결과를 출력한다.

입력

첫 번째 줄에 문자열 SS와 정수 nn이 공백으로 구분되어 주어진다.

이어서 nn개의 줄에 질의가 첫 번째 질의부터 순서대로 한 줄에 하나씩 주어진다. 유형 1은 정수 1, 문자 i1i_1, i2i_2가 공백으로 구분되어 주어지고, 유형 2는 정수 2만 주어진다.

출력

유형 2 질의의 결과를 순서대로 한 줄에 하나씩 출력한다.

제한

  • 1≤∣S∣≤3000001 \le |S| \le 300000이며, SS는 알파벳 대소문자로 이루어진다.
  • 1≤n≤3000001 \le n \le 300000.
  • 질의 목록 AA에는 유형 1과 유형 2의 질의만 있다.
  • AA에는 유형 2 질의가 1개 이상 있다.
  • ∣S∣×|S| \times (유형 2 질의의 수) ≤108\le 10^8.
  • i1i_1, i2i_2는 알파벳 대소문자이다.

예제1

  1. 예제 1

    입력
    abac 8
    2
    1 a d
    1 d c
    2
    1 A b
    1 c c
    2
    1 c Z
    
    예상 출력
    1
    2
    2