시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 512 MB | 72 | 36 | 11 | 50.000% |
크기가 n인 정수 배열 X가 있고, 0으로 초기화되어있다. 이 배열에 연산을 q번 적용하려고 한다.
배열에 적용할 수 있는 연산은 아래와 같이 두 종류가 있다.
예를 들어, n = 6이고, 아래와 같이 연산을 다섯 번 적용한 경우를 살펴보자.
가장 처음에 X는 [0, 0, 0, 0, 0, 0]이다. 각 연산을 사용한 결과는 아래와 같다.
배열의 크기 n과 적용한 연산의 수 q, 그리고 적용한 연산이 주어졌을 때, 배열 X에 담겨있는 수를 구해보려고 한다.
크기가 m인 배열 Y가 주어졌을 때, 모든 연산을 적용한 후의 X[Y[i]] 값을 구해보자.
첫째 줄에 세 정수 n, q, m이 주어진다. (1 ≤ n ≤ 1,000,000, 0 ≤ q ≤ 10,000, 1 ≤ m ≤ 5,000).
다음 q개의 줄에 결처 연산이 한 줄에 하나씩 주어진다. 각 줄은 'a'나 'r'로 시작한다. 이 대, 'a'는 덧셈 연산을 나타내고, 'r'은 뒤집기 연산을 나타낸다. 'r'이 주어진 경우, 그 뒤에 공백으로 구분된 두 정수 i, j가 주어진다. (0 ≤ i ≤ j < n)
마지막 줄에는 배열 Y를 나타내는 m개의 정수가 순서대로 주어진다. (0 ≤ Y[i] < n)
총 m개의 줄에 X[Y[i]]값을 순서대로 한 줄에 하나씩 출력한다.
6 5 6 a a r 0 4 a r 2 5 0 1 2 3 4 5
8 7 15 4 5 6
문제에서 예시로 사용한 예제이다.
3 0 3 2 1 0
0 0 0
7 6 7 a a r 0 3 a a r 3 5 0 1 2 3 4 5 6
6 6 6 20 16 6 24
2 7 2 a r 0 1 a a r 0 1 a r 0 1 0 1
2 2
2 10 2 a r 0 1 a a r 0 1 a r 0 1 r 0 0 r 1 1 r 0 1 0 1
2 2