수열과 쿼리 28

크기 10만 이하의 수열에서 구간 덧셈, 구간 정수 제곱근 적용, 구간 합 출력 쿼리를 처리한다.

어려움8세그먼트 트리연결 리스트수학구현아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 

  • 1 L R X: 모든 L ≤ i ≤ R에 대해서 Ai = Ai + X를 적용한다. 
  • 2 L R: 모든 L ≤ i ≤ R에 대해서 Ai = ⌊√Ai⌋를 적용한다.
  • 3 L R: AL + AL+1 + ... + AR을 출력한다.

입력

첫째 줄에 수열의 크기 N이 주어진다. (1 ≤ N ≤ 100,000)

둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100,000)

셋째 줄에는 쿼리의 개수 M이 주어진다. (1 ≤ M ≤ 100,000)

넷째 줄부터 M개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. (1 ≤ L ≤ R ≤ N, 1 ≤ X ≤ 100,000) 3번 쿼리는 한 번 이상 주어진다.

출력

3번 쿼리의 결과를 한 줄에 하나씩 출력한다.