수열과 가중 합 쿼리
시간 제한2초메모리 제한512 MB
삽입, 삭제, 교체가 일어나는 수열에서 각 원소에 왼쪽 끝 기준 위치의 k제곱(k는 10 이하)을 곱한 합을 구간별로 계산한다.
문제
길이가 인 수열 이 주어진다. 모든 원소는 를 만족한다. 아래 네 가지 쿼리를 주어진 순서대로 처리하는 프로그램을 작성하시오.
1 p v: 의 앞에 를 삽입한다. 가 수열의 길이와 같으면 맨 뒤에 붙인다. ( 수열의 길이, )2 p: 를 제거한다. ( 수열의 길이)3 p v: 를 로 바꾼다. ( 수열의 길이, )4 l r k: 을 출력한다. ( 수열의 길이, )
삽입이나 삭제가 일어나면 그 뒤에 있던 원소의 번호가 한 칸씩 밀리거나 당겨진다. 쿼리에 주어지는 , , 은 그 쿼리를 처리하는 시점의 수열을 기준으로 한다.
4번 쿼리의 가중치 는 구간의 왼쪽 끝을 1로 세는 상대 위치를 제곱한 값이다.
입력
첫째 줄에 수열의 크기 ()이 주어진다.
둘째 줄에 이 공백으로 구분되어 주어진다.
셋째 줄에 쿼리의 개수 ()이 주어진다.
넷째 줄부터 개의 줄에 쿼리가 한 줄에 하나씩 주어진다.
출력
4번 쿼리마다 답을 한 줄에 하나씩 출력한다. 1번, 2번, 3번 쿼리는 아무것도 출력하지 않는다.