뒤섞기 게임

시간 제한1초메모리 제한128 MB

요약
회전 규칙이 적힌 맵에 따라 행렬을 반복적으로 뒤섞으면서 최대 10^100번의 턴 동안 각 숫자가 몇 번 기록되는지 10^5로 나눈 나머지를 구하는 문제입니다.
난이도

어려움10점 중 8점

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

문제

파벨은 정수 행렬 위에서 하는 새로운 게임을 만들었다. 먼저 rr개의 행과 cc개의 열을 가진 r×cr \times c 행렬을 준비하고, 11부터 rcrc까지의 수를 왼쪽에서 오른쪽으로, 위에서 아래로 채운다. 즉 11은 왼쪽 위 구석에, rcrc는 오른쪽 아래 구석에 놓인다. 따라서 ii행 jj열(둘 다 11부터 시작)의 칸에는 처음에 값 (i−1)⋅c+j(i-1)\cdot c + j가 들어 있다.

파벨은 아래 규칙에 따라 행렬을 반복해서 뒤섞으면서, 별도의 종이에 수의 수열을 적어 나간다. 그는 이것을 행렬의 뒤섞기라고 부른다. 뒤섞는 방법은 뒤섞기 지도로 정해진다. 뒤섞기 지도는 각 칸이 문자 L, R, N 중 하나인 (r−1)×(c−1)(r-1) \times (c-1) 행렬이다.

파벨은 여러 번의 차례에 걸쳐 게임을 진행한다. 각 차례는 2×22 \times 2 블록의 왼쪽 위 구석이 될 수 있는 모든 칸, 즉 마지막 행과 마지막 열을 제외한 모든 칸을 행 우선 순서로 방문한다: (1,1),(1,2),…,(1,c−1),(2,1),…,(r−1,c−1)(1,1), (1,2), \dots, (1,c-1), (2,1), \dots, (r-1,c-1). (r−1)(c−1)(r-1)(c-1)번째 차례가 끝나면 다시 칸 (1,1)(1,1)로 돌아가 같은 순서를 반복하므로, 방문하는 칸은 주기 (r−1)(c−1)(r-1)(c-1)로 순환한다.

각 차례에서 파벨은 먼저 지금 방문한 칸에 들어 있는 수를 적는다. 그다음 같은 위치의 뒤섞기 지도 문자를 보고, 방문한 칸을 왼쪽 위 구석으로 하는 2×22 \times 2 블록을 다음과 같이 재배치한다.

  • R — 블록을 시계 방향으로 90∘90^\circ 회전한다.
  • L — 블록을 반시계 방향으로 90∘90^\circ 회전한다.
  • N — 블록을 그대로 둔다.

블록

a b
c d

을 시계 방향으로 회전하면

c a
d b

이 되고, 반시계 방향으로 회전하면

b d
a c

이 된다.

예를 들어 4×54 \times 5 초기 행렬과 뒤섞기 지도

L R L R
N L L R
L N N L

에 대해 파벨이 처음 여섯 번 적는 수는 1,7,7,9,1,81, 7, 7, 9, 1, 8이다(다섯 번째 차례에서는 방문한 칸에 11이 있고 지도 문자가 N이므로 아무것도 움직이지 않는다).

뒤섞기 지도와 파벨이 진행하는 차례 수 nn이 주어질 때, 각 수가 몇 번 적히는지 구하여라. 값이 매우 커질 수 있으므로 각 값을 10510^5으로 나눈 나머지를 출력한다.

입력

첫 번째 줄에는 세 정수 rr, cc, nn이 주어진다. 여기서 rr과 cc (2≤r,c≤3002 \le r, c \le 300)는 초기 행렬의 크기이고, nn (0≤n<101000 \le n < 10^{100})은 파벨이 진행하는 차례의 수이다.

이어지는 r−1r - 1개의 줄에는 각각 R, L, N 중 하나인 문자 c−1c - 1개가 있으며, 뒤섞기 지도의 한 행을 나타낸다.

출력

rcrc개의 줄을 출력한다. ii번째 줄에는 파벨의 nn번의 차례 동안 값 ii가 적히는 횟수를 10510^5으로 나눈 나머지로 출력한다.

예제2

  1. 예제 1

    입력
    4 5 6
    LRLR
    NLLR
    LNNL
    
    예상 출력
    2
    0
    0
    0
    0
    0
    2
    1
    1
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    
  2. 예제 2

    입력
    4 5 666666
    LRLR
    NLLR
    LNNL
    
    예상 출력
    37038
    37038
    0
    0
    30864
    37036
    11112
    30864
    30864
    30864
    30864
    30864
    11110
    30865
    18519
    30864
    30864
    0
    18518
    18518