빅 데이터 순열
시간 제한15초메모리 제한2048 MB
배열 a의 값을 바꾸는 갱신과 구간 질의가 주어집니다. 질의마다 [l, r] 안에서 a[j+1]=b[a[j]]가 이어지고 값 x를 포함하는 가장 긴 부분 구간의 길이를 구합니다.
문제
길이가 인 수열 과 순열 이 주어진다. 다음 두 가지 연산을 번 처리한다.
- 수정 연산: 와 가 주어진다. 를 로 바꾼다.
- 조회 연산: , , 가 주어진다. 구간 의 부분 구간 (단, ) 중에서 모든 에 대해 이고, 을 만족하는 어떤 에 대해 인 가장 긴 구간을 찾는다. 그 구간의 길이 만 출력한다. 그런 구간이 없으면 을 출력한다.
입력
첫째 줄에 과 이 주어진다 (). 둘째 줄에는 이 주어진다 (). 셋째 줄에는 이 주어진다 (, 모든 는 서로 다르다). 이후 개의 줄에 연산이 하나씩 주어진다. 수정 연산은 1 x y 형태이고, 조회 연산은 2 l r x 형태이다 (, ). 조회 연산은 적어도 하나 주어진다.
출력
각 조회 연산마다 답을 한 줄에 출력한다.