브루마블
시간 제한3초메모리 제한1024 MB
화살표 격자에서 시작 칸을 정해 L번 이동하며 얻는 점수를 구하고, 도중에 추가되는 이벤트를 질의마다 반영합니다.
문제
《브루마블(Brue Marble)》은 주인공 브루를 이동시켜 보드판 여러 곳에서 열리는 행사에 참여시키는 게임입니다. 게임이 진행되는 보드판은 행 열의 격자판이고, 각 칸에는 상하좌우 또는 대각선 방향 8개 중 하나를 가리키는 화살표가 그려져 있습니다. 화살표가 가리키는 방향에는 항상 격자칸이 존재합니다.
행사는 정확히 한 턴 동안만 진행됩니다. 해당 턴에 특정 격자칸에 있으면 행사에 참여할 수 있습니다. 행사에 참여하는 데 성공하면 점수를 얻으며, 얻는 점수는 행사마다 다릅니다.
게임은 다음 과정으로 진행됩니다.
- 게임을 시작하기 전에 시작 위치를 정하고 그 위에 말을 놓습니다.
- 이후 번의 턴을 반복합니다. 한 턴은 다음과 같이 진행됩니다.
- 먼저 화살표가 가리키는 방향으로 한 칸 이동합니다.
- 이 칸에서 행사가 열리고 있다면 플레이어는 행사에 해당하는 점수를 얻습니다. 열리고 있는 행사가 여러 개라면 각 행사 점수의 합만큼 점수가 증가합니다.
- 턴이 끝난 뒤 최종 점수를 계산합니다.
이 게임은 대부분 완성되었지만, 행사와 관련된 정보는 아직 정해지지 않았습니다. 당신은 이 게임의 베타 테스터로서 게임의 밸런스가 잘 맞춰졌는지 시뮬레이션해야 합니다. 특정 지점을 시작 위치로 했을 때의 최종 점수를 구해야 합니다. 중간에 행사 정보가 추가될 수 있으며, 그때마다 추가된 정보를 반영해야 합니다. 초기에 예정된 행사는 없습니다.
처리해야 하는 작업은 다음 두 가지입니다. 행 열의 칸은 로 표기합니다.
- 행사 추가 작업: 턴에 칸에서 열리는 행사를 추가합니다. 이 행사에 참여하면 의 점수를 얻을 수 있습니다.
- 점수 계산 작업: 칸에서 시작할 때 얻는 최종 점수를 계산합니다.
입력
첫 번째 줄에 격자의 크기를 나타내는 두 정수 , 과 턴의 수 , 작업의 횟수 가 주어집니다.
다음 개의 줄에는 각 칸의 화살표 상태가 주어집니다. 번째 줄에는 개의 문자가 주어지며, 번째 문자 는 행 열 칸의 화살표 방향을 나타냅니다. 행 번호는 위에서 아래로, 열 번호는 왼쪽에서 오른쪽으로 갈수록 증가합니다. 각 문자가 나타내는 방향은 다음과 같습니다.
Q: 왼쪽 위W: 위E: 오른쪽 위D: 오른쪽C: 오른쪽 아래X: 아래Z: 왼쪽 아래A: 왼쪽
다음 개의 줄에 작업 정보가 한 줄에 하나씩 주어집니다. 형식은 다음과 같습니다.
- : 턴에 칸에서 열리는 행사를 추가합니다. 이 행사에 참여하면 의 점수를 얻을 수 있습니다.
- : 칸에서 시작할 때 얻는 최종 점수를 계산합니다.
출력
점수 계산 작업마다 최종 점수를 한 줄에 하나씩 출력합니다.
제한
- (, )
- 행사 추가 작업이면 , , , 이 성립합니다.
- 점수 계산 작업이면 , 이 성립합니다.
- 점수 계산 작업이 적어도 하나 존재합니다.
- 각 칸의 화살표가 가리키는 방향에는 항상 칸이 존재합니다.