순열 사이클과 쿼리
시간 제한7초메모리 제한512 MB
순열 A와 매우 큰 지수 m이 주어질 때, 두 원소를 교환하는 쿼리 뒤에 S^m(i)에 i를 곱한 합을 구합니다.
문제
1 이상 이하의 서로 다른 정수 개로 이루어진 배열 와 정수 이 주어진다. , (, )로 정의한다. 에 대한 개의 질의가 질의 목록 에 저장되어 있다. 질의는 두 가지 유형이다.
- 유형 1
1 i j: 와 의 값을 교환한다. - 유형 2
2: 을 출력한다.
의 첫 번째 질의부터 번째 질의까지 순서대로 처리하면서 유형 2 질의의 결과를 출력한다.
입력
첫 번째 줄에 과 이 공백으로 구분되어 주어진다.
두 번째 줄에 배열 의 원소 이 공백으로 구분되어 주어진다.
세 번째 줄에 질의의 수 가 주어진다.
네 번째 줄부터 개의 줄에 걸쳐 질의 목록 의 질의가 순서대로 주어진다. 한 줄에 질의 하나를 나타내는 정수가 공백으로 구분되어 있다.
출력
유형 2 질의의 결과를 질의 순서대로 한 줄에 하나씩 출력한다.
제한
- ()
- 에 저장된 질의는 유형 1과 유형 2뿐이다.
- 에 저장된 유형 2 질의는 1개 이상 개 이하이다.
힌트
은 배열 의 원소를 이동시키는 연산을 번 반복하는 동작이다. 번째 원소에 이동 연산을 번() 수행한 후의 위치를 라고 하자. 초기 위치는 이고, 1번 이동한 후의 위치는 이며, 번 이동한 후의 위치는 이다.
예를 들어 이고 이라고 하자. 첫 번째 원소는 , , , 로 이동한다. 두 번째 원소는 , , , 로 이동한다. 세 번째 원소는 모든 에 대해 이다.