만드는 중입니다

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

다항함수의 적분과 쿼리

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

요약
정수 A_0부터 A_N으로 정해지는 매끄러운 조각별 다항함수 g를 구하고, 값을 바꾼 뒤 구간 [a, b]에서 g의 적분값의 6배를 구합니다.
난이도

보통10점 중 7점

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

문제

길이가 N+1N + 1인 수열 A0,A1,A2,⋯ ,ANA_0, A_1, A_2, \cdots, A_N이 주어진다. 이때 다음 조건에 따라 NN개의 다항함수 f1(x),f2(x),f3(x),⋯ ,fN(x)f_1(x), f_2(x), f_3(x), \cdots, f_N(x)와 함수 g(x)g(x)가 정해진다.

  • NN 이하인 모든 음이 아닌 정수 nn에 대해 g(n)=Ang(n) = A_n이다.
  • NN 이하인 모든 양의 정수 nn에 대해, n−1≤x≤nn - 1 \le x \le n이면 g(x)=fn(x)g(x) = f_n(x)이다.
  • g(x)g(x)는 구간 (0,N)(0, N)에서 미분가능하다.
  • f1(x),f2(x),f3(x),⋯ ,fN(x)f_1(x), f_2(x), f_3(x), \cdots, f_N(x)의 차수를 나열한 수열이 사전 순으로 가능한 한 앞에 오도록 한다.

다음 쿼리를 수행하는 프로그램을 작성하시오.

  • 1 i v: AiA_i를 vv로 바꾼다.
  • 2 a b: 6×∫abg(x)dx6 \times \int_a^b g(x)dx를 출력한다.

입력

첫 번째 줄에 NN이 주어진다. (1≤N≤200 000)(1 \le N \le 200\,000)

두 번째 줄에 N+1N + 1개의 정수 A0,A1,A2,⋯ ,ANA_0, A_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다. (−100 000≤Ai≤100 000)(-100\,000 \le A_i \le 100\,000)

세 번째 줄에 쿼리의 개수 MM이 주어진다. (1≤M≤200 000)(1 \le M \le 200\,000)

다음 MM개의 줄에 쿼리가 한 줄에 하나씩 주어진다. (0≤i≤N;(0 \le i \le N; −100 000≤v≤100 000;-100\,000 \le v \le 100\,000; 0≤a≤b≤N)0 \le a \le b \le N)

모든 입력 데이터에는 2번 쿼리가 하나 이상 존재한다.

입력되는 모든 수는 정수이다.

출력

각 2번 쿼리의 결과를 한 줄에 하나씩 순서대로 출력한다. 2번 쿼리의 결과는 항상 정수이며, 이를 증명할 수 있다.

예제1

  1. 예제 1

    입력
    2
    0 1 8
    3
    2 0 2
    1 0 1
    2 1 2
    
    예상 출력
    24
    20