아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

다항식과 쉬운 쿼리

시간 제한2초메모리 제한256 MB

요약
배열에 구간마다 f(x)=2x^2-1과 g(x)=4x^3-3x를 적용하고, 한 점의 값을 100003으로 나눈 나머지를 답한다.
난이도

어려움10점 중 9점

유형
수학, 세그먼트 트리, 정수론, 조합론
정답자
아직 제출이 없습니다

문제

길이 NN의 수열 AA가 주어집니다. 이 수열에 아래 세 가지 종류의 쿼리를 처리하는 프로그램을 만들어 봅시다.

  • 11 ll rr: l≤i≤rl \le i \le r인 모든 AiA_i를 f(Ai)f(A_i)로 바꿉니다.
  • 22 ll rr: l≤i≤rl \le i \le r인 모든 AiA_i를 g(Ai)g(A_i)로 바꿉니다.
  • 33 xx: AxA_x를 출력합니다. 답이 매우 커질 수 있으니, 100 003100\,003으로 나눈 나머지를 출력합니다.

단, f(x)=2x2−1f(x)=2x^2 -1, g(x)=4x3−3xg(x) = 4x^3 - 3x입니다.

입력

첫 줄에는 수열의 길이 NN과 쿼리의 수 QQ가 주어집니다.

둘째 줄에는 수열 AA의 초기 상태 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어집니다.

셋째 줄부터 QQ개의 줄에는 각 쿼리에 대한 정보가 위의 형태 (tt ll rr 또는 tt xx)로 순서대로 주어집니다.

출력

모든 3번 쿼리에 대해, 그 답을 한 줄에 하나씩 출력합니다.

제한

  • 1≤N≤5×1051 \le N \le 5 \times 10^5
  • 1≤Q≤5×1051 \le Q \le 5 \times 10^5
  • 1≤Ai≤1051 \le A_i \le 10^5
  • 모든 쿼리에 대해, 1≤t≤31 \le t \le 3, 1≤l≤r≤N1 \le l \le r \le N, 1≤x≤N1 \le x \le N
  • 3번 쿼리가 적어도 하나는 주어집니다.

예제1

  1. 예제 1

    입력
    3 3
    1 2 3
    1 1 3
    2 1 3
    3 2
    
    예상 출력
    1351