배열 쿼리
시간 제한2초메모리 제한512 MB
배열에서 구간의 각 원소를 정수 제곱근으로 바꾸고, 구간 합을 구하고, 구간에 값을 더하는 쿼리를 처리합니다.
문제
이야기가 없는 문제를 좋아하지 않는 사람이 있을까? 여기 또 하나 있다.
정수 배열 이 주어진다. 이어서 개의 쿼리가 주어지며, 각 쿼리는 다음 세 가지 유형 중 하나이다.
- 인 모든 를 로 바꾼다. 여기서 는 의 제곱근이고, 는 의 소수점 이하를 버린 정수 값이다.
- 인 모든 의 합을 출력한다.
- 인 모든 에 를 더한다.
입력
첫 줄에 테스트 케이스의 수 ()가 하나의 정수로 주어진다. 각 테스트 케이스는 정수 ()과 ()가 공백으로 구분되어 적힌 줄로 시작한다.
다음 줄에는 초기 값 ()이 공백으로 구분되어 주어진다.
이어서 개의 줄에 다음 형식 중 하나의 쿼리가 주어진다 (, ).
- 유형 1: 1 L R
- 유형 2: 2 L R
- 유형 3: 3 L R x
출력
유형 2 쿼리마다 답을 한 줄에 출력한다.