길이가 N인 수열 A0,A1,…,AN−1이 주어진다. 모든 원소는 0≤Ai<232를 만족한다. 아래 네 가지 쿼리를 주어진 순서대로 처리하는 프로그램을 작성하시오.
1 p v: Ap의 앞에 v를 삽입한다. p가 수열의 길이와 같으면 맨 뒤에 붙인다. (0≤p≤ 수열의 길이, 0≤v<232)
2 p: Ap를 제거한다. (0≤p< 수열의 길이)
3 p v: Ap를 v로 바꾼다. (0≤p< 수열의 길이, 0≤v<232)
4 l r k: (∑i=lrAi×(i−l+1)k)mod232을 출력한다. (0≤l≤r< 수열의 길이, 0≤k≤10)
삽입이나 삭제가 일어나면 그 뒤에 있던 원소의 번호가 한 칸씩 밀리거나 당겨진다. 쿼리에 주어지는 p, l, r은 그 쿼리를 처리하는 시점의 수열을 기준으로 한다.
4번 쿼리의 가중치 (i−l+1)k는 구간의 왼쪽 끝을 1로 세는 상대 위치를 k제곱한 값이다.