뒤집기와 회전
시간 제한2초메모리 제한64 MB
최대 10만 개의 행렬 변환(전치, 반전, 회전) 연산을 순서대로 효율적으로 적용해 최종 행렬을 출력하는 문제입니다.
문제
출력 가능한 문자로 이루어진 행 열 행렬 가 주어진다. 행은 첫 번째 첨자로 부터, 열은 두 번째 첨자로 부터 번호를 매긴다. 한 번의 연산은 현재 행렬을 다음 규칙 중 하나에 따라 새로운 행렬 로 바꾼다(백틱 안의 문자가 연산 식별자이다).
- 주대각선 기준 전치 (
1): - 반대각선 기준 전치 (
2): - 상하 뒤집기 (
H): - 좌우 뒤집기 (
V): - 시계 방향으로 (
A), (B), (C)도 회전; 도인 경우 - 반시계 방향으로 (
X), (Y), (Z)도 회전; 도인 경우
이러한 연산들의 수열이 최대 100,000개 주어진다. 주어진 순서대로 행렬에 적용한 뒤 결과 행렬을 출력하여라.
입력
첫째 줄에 두 정수 과 이 주어진다 (). 다음 개의 줄에는 각각 정확히 개의 출력 가능한 문자가 주어진다. 출력 가능한 문자란 ASCII 코드가 이상 이하인 기호를 뜻하며, 이 줄들에는 다른 문자가 포함되지 않는다. 그다음 줄에는 적용할 연산들의 수열이 한 글자짜리 식별자로 주어지며, 왼쪽에서 오른쪽 순서로 적용한다.
출력
먼저 결과 행렬의 행 수와 열 수를 나타내는 두 정수를 출력한다. 이어서 입력과 같은 형식으로 결과 행렬을 출력한다.