만드는 중입니다

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

포털 대포

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

요약
문자열에 한 글자 변경과 전체 글자 치환 연산이 주어질 때, 두 구간의 문자열이 같은지 매 질의마다 판별합니다.
난이도

보통10점 중 7점

유형
문자열 매칭, 세그먼트 트리, 해시맵
정답자
아직 제출이 없습니다

문제

릭은 모티에게 포털 대포를 맡기면 안 된다는 것을 잘 알고 있다. 하지만 모티가 자기만의 포털 대포를 달라고 너무 오래 졸라서, 결국 릭은 미니 버전을 만들어 주기로 했다.

모티가 성장하도록 하려는 것인지(또는 그냥 사용하기 어렵게 만들려는 것인지) 릭은 장치를 꽤 복잡하게 만들었다. 포털 대포에는 nn개의 매개변수가 있고, 각 매개변수는 'a'부터 'z'까지의 값을 가진다. ii번째 매개변수를 pip_i로 표기한다.

한 번의 동작으로 모티는 다음을 할 수 있다.

  • 11부터 nn까지의 번호 ii를 골라 그 값을 'a'부터 'z'까지의 다른 값 cc로 바꾼다.
  • 'a'부터 'z'까지의 두 값 c1c_1과 c2c_2를 골라, 현재 값이 c1c_1인 모든 매개변수의 값을 c2c_2로 바꾼다.
  • 위치 (l1,r1)(l_1, r_1)과 (l2,r2)(l_2, r_2)에서 포털을 만들 수 있는지 확인한다(단, l1⩽r1l_1 \leqslant r_1, l2⩽r2l_2 \leqslant r_2). 이를 위해 [l1,r1][l_1, r_1] 구간의 매개변수가 [l2,r2][l_2, r_2] 구간의 매개변수와 원소별로 같아야 하며, 다음 조건이 성립해야 한다.

{r1−l1=r2−l2pl1+i=pl2+i모든 0⩽i⩽r1−l1에 대해\begin{cases} r_1 - l_1 = r_2 - l_2 \\ p_{l_1 + i} = p_{l_2 + i} & \text{모든 } 0 \leqslant i \leqslant r_1 - l_1 \text{에 대해} \end{cases}

모티는 그리 영리하지 않아서 매개변수 열을 빠르게 비교하기 어렵고, 실수로 포털 대포를 망가뜨리고 싶지도 않다. 세 번째 종류의 동작마다 요청한 위치에서 포털을 만들 수 있는지 판단하라.

입력

첫 줄에 길이가 nn이고 작은 라틴 문자로만 이루어진 문자열 pp가 주어진다. 이는 대포 매개변수의 초기 값이다(1⩽n⩽2⋅1051 \leqslant n \leqslant 2 \cdot 10^5).

다음 줄에는 모티가 수행하는 동작의 개수 qq가 정수 하나로 주어진다(1⩽q⩽2⋅1051 \leqslant q \leqslant 2 \cdot 10^5).

이어지는 qq개의 줄에 동작이 주어진다.

  • 1 ii cc: ii번째 매개변수의 값을 cc로 설정한다(1⩽i⩽n1 \leqslant i \leqslant n; 'a' ⩽c⩽\leqslant c \leqslant 'z').
  • 2 c1c_1 c2c_2: 모든 매개변수 중 값이 c1c_1인 것을 전부 c2c_2로 바꾼다('a' ⩽c1,c2⩽\leqslant c_1, c_2 \leqslant 'z').
  • 3 l1l_1 r1r_1 l2l_2 r2r_2: 위치 (l1,r1)(l_1, r_1)과 (l2,r2)(l_2, r_2)에서 포털을 만들 수 있는지 확인한다(1⩽l1,r1,l2,r2⩽n1 \leqslant l_1, r_1, l_2, r_2 \leqslant n; l1⩽r1l_1 \leqslant r_1; l2⩽r2l_2 \leqslant r_2).

출력

세 번째 종류의 동작마다 모티가 포털을 만들 수 있으면 YES, 없으면 NO를 각각 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    aaabc
    6
    3 1 2 2 3
    1 4 c
    2 c a
    3 1 4 2 5
    1 3 x
    3 1 4 2 5
    
    예상 출력
    YES
    YES
    NO
    
  2. 예제 2

    입력
    abracadabra
    7
    3 1 4 8 11
    1 7 r
    2 a c
    2 b c
    3 1 4 8 11
    3 1 4 5 8
    3 2 4 6 8
    
    예상 출력
    YES
    YES
    YES
    YES