아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

응원단

시간 제한3초메모리 제한1024 MB

요약
N×N 격자에 행·열 순환 이동과 두 칸 교환을 Q번 적용한 뒤 최종 배치를 출력한다.
난이도

보통10점 중 6점

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

문제

UCPC 대학교 내에서 열리는 체육대회의 응원단에 N2N^2(NN은 짝수)명의 단원이 참가할 예정이다. 응원단장은 먼저 N2N^2명의 단원을 NN개의 행(가로줄)과 NN개의 열(세로줄)로 구성된 N×NN\times N의 격자 형태로 배치했다. 그리고 ii행 jj열에 위치한 응원단의 번호를 A_i,jA\_{i,j}라 할 때, A_i,j=(i−1)×N+jA\_{i,j}=(i-1)\times N+j번의 번호를 부여하는 방식으로 각 단원에게 11번부터 N2N^2번까지 번호를 매겼다.

N=4N=4일 때 응원단의 상태

응원단은 경기가 진행될 동안 QQ번의 응원 패턴을 수행하기로 했다. 수행할 응원 패턴의 종류는 총 55가지이다.

  • RORO: (홀수 행 이동) 홀수 행에 위치한 단원들의 열을 11 증가시킨다. 열이 NN을 초과한 단원은 동일한 행의 11열로 이동한다. 즉, ii가 홀수인 모든 ii에 대해 A_i,jA\_{i,j}를 A_i,((j−2)mod  N)+1A\_{i,((j-2)\mod N) +1}로 바꾼다.
  • RERE: (짝수 행 이동) 짝수 행에 위치한 단원들의 열을 11 증가시킨다. 열이 NN을 초과한 단원은 동일한 행의 11열로 이동한다. 즉, ii가 짝수인 모든 ii에 대해 A_i,jA\_{i,j}를 A_i,((j−2)mod  N)+1A\_{i,((j-2)\mod N) +1}로 바꾼다.
  • COCO: (홀수 열 이동) 홀수 열에 위치한 단원들의 행을 11 증가시킨다. 행이 NN을 초과한 단원은 동일한 열의 11행으로 이동한다. 즉, jj가 홀수인 모든 jj에 대해 A_i,jA\_{i,j}를 A_((i−2)mod  N)+1,jA\_{((i-2)\mod N) +1,j}로 바꾼다.
  • CECE: (짝수 열 이동) 짝수 열에 위치한 단원들의 행을 11 증가시킨다. 행이 NN을 초과한 단원은 동일한 열의 11행으로 이동한다. 즉, jj가 짝수인 모든 jj에 대해 A_i,jA\_{i,j}를 A_((i−2)mod  N)+1,jA\_{((i-2)\mod N) +1,j}로 바꾼다.
  • SS r_1r\_1 c_1c\_1 r_2r\_2 c_2c\_2: (교체) r_1r\_1행 c_1c\_1열에 위치한 단원과 r_2r\_2행 c_2c\_2열에 위치한 단원이 서로 자리를 바꾼다.

단원의 수와 경기가 진행되는 동안 수행한 응원 패턴 QQ개가 순서대로 주어졌을 때, 응원 패턴을 모두 수행한 뒤의 응원단의 최종 상태를 출력하자.

입력

첫 번째 줄에 NN, QQ가 공백으로 구분되어 주어진다. (2≤N≤1 000,N(2\leq N\leq 1\ 000,N은 짝수,1≤Q≤500 000),1\leq Q\leq 500\ 000)

두 번째 줄부터 QQ개의 줄에 각 줄마다 위의 5가지 응원 패턴 중 하나가 순서대로 주어진다. (1≤r_1,c_1,r_2,c_2≤N,(r_1,c_1)≠(r_2,c_2))(1\leq r\_1,c\_1,r\_2,c\_2\leq N,(r\_1,c\_1)\neq(r\_2,c\_2))

입력으로 주어지는 모든 수는 정수이다.

출력

NN개의 줄에 걸쳐 응원단의 최종 상태를 출력한다. ii번째 줄에는 ii행 11열부터 ii행 NN열까지 위치한 단원의 번호를 의미하는 NN개의 정수를 공백으로 구분하여 출력한다.

예제2

  1. 예제 1

    입력
    2 2
    RO
    S 1 2 2 1
    
    예상 출력
    2 3
    1 4
    
  2. 예제 2

    입력
    4 5
    RO
    CO
    RE
    CE
    S 1 1 2 2
    
    예상 출력
    1 12 15 10
    8 13 6 3
    5 4 7 2
    16 9 14 11