만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

회전

시간 제한2초메모리 제한512 MB

요약
N×N 글자 격자와 Q개의 정사각형 영역이 주어질 때, 각 영역을 반시계 방향으로 90도 돌린 뒤의 최종 격자를 출력합니다.
난이도

보통10점 중 5점

유형
행렬, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

N×NN \times N 크기의 정사각형 보드가 있다. 보드는 NN행 NN열의 칸으로 이루어져 있으며, 위에서 ii번째, 왼쪽에서 jj번째 칸을 (i,j)(i, j)라고 한다. 칸 (i,j)(i, j)에는 문자 AijA_{ij}가 적혀 있다.

보드의 정사각형 영역 하나를 시계 반대 방향으로 90도 회전하는 작업을 QQ번 반복한다. kk번째 회전은 (Ik,Jk)(I_k, J_k) 칸을 왼쪽 위 모서리로 포함하는 Sk×SkS_k \times S_k 크기의 정사각형 영역을 회전한다.

모든 회전을 마친 최종 보드를 구하라.

입력

첫 번째 줄에 정수 NN과 QQ가 공백으로 구분되어 주어진다. NN은 보드의 크기, QQ는 회전 횟수이다.

이어서 NN개의 줄에 보드의 초기 상태가 주어진다. ii번째 줄의 jj번째 문자가 AijA_{ij}이다. 문자열은 소문자 알파벳으로만 이루어져 있다.

이어서 QQ개의 줄에 회전 정보가 주어진다. kk번째 줄에는 정수 IkI_k, JkJ_k, SkS_k가 공백으로 구분되어 주어진다. 이는 kk번째 회전이 (Ik,Jk)(I_k, J_k) 칸을 왼쪽 위 모서리로 포함하는 Sk×SkS_k \times S_k 크기의 정사각형 영역을 회전한다는 뜻이다. 단, 1≤Ik≤N−Sk+11 \le I_k \le N - S_k + 1, 1≤Jk≤N−Sk+11 \le J_k \le N - S_k + 1, 2≤Sk≤N2 \le S_k \le N이다.

출력

최종 보드를 NN줄에 걸쳐 출력한다. ii번째 줄에는 NN개의 문자로 이루어진 문자열을 출력하며, 그 jj번째 문자가 최종 보드의 (i,j)(i, j) 칸에 적힌 문자이다.

제한

  • 2≤N≤10002 \le N \le 1000 (보드의 크기)
  • 1≤Q≤20001 \le Q \le 2000 (회전 횟수)

예제1

  1. 예제 1

    입력
    4 1
    abcd
    efgh
    ijkl
    mnop
    2 2 2
    
    예상 출력
    abcd
    egkh
    ifjl
    mnop