C=A+B
시간 제한2초메모리 제한1024 MB
A, B, C로 칠해진 수열에서 구간에 값을 더하고, 각 C 원소를 대응하는 A와 B 원소의 합으로 바꾸며, 구간 합을 구하는 문제입니다.
문제
길이가 인 수열 가 있다. 은 의 배수이다. 수열 의 모든 원소는 , , 중 하나의 색깔로 칠해져 있으며, 각 색깔로 칠한 원소의 개수는 모두 개로 같다. 수열의 앞에서부터 로 칠한 원소를 차례대로 이라고 정의한다. 와 도 같은 방식으로 , 를 정의한다.
다음 세 종류의 쿼리를 처리하는 프로그램을 작성하라.
1 i j k: 수열 의 번째 원소부터 번째 원소까지에 를 더한다.2 i j: 수열 의 번째 원소부터 번째 원소 중 로 칠해진 원소에 대해 를 적용한다.3 i j: 수열 의 번째 원소부터 번째 원소까지의 합을 출력한다.
입력
첫 번째 줄에 의 배수인 이 주어진다.
두 번째 줄에 정수 이 공백으로 구분되어 순서대로 주어진다.
세 번째 줄에는 A, B, C로만 이루어진 길이 의 문자열이 주어진다. 문자열의 번째 문자는 가 칠해진 색깔이다.
네 번째 줄에 쿼리의 개수 가 주어진다.
다음 개의 줄에 쿼리가 한 줄에 하나씩 주어진다.
입력되는 값은 모두 정수이다.
출력
번 쿼리가 주어질 때마다 한 줄에 하나씩 그 결과를 출력한다.