TopCoder

Josh
\begin{flalign} \LARGE\text{.} \end{flalign}

User's AC Ratio

100.0% (5/5)

Submission's AC Ratio

83.3% (5/6)

Tags

Description

現在有一個 $N\times M$ 表格,每個格子內有一個小寫英文字母,我們用 $(i,j)$ 代表由上而下第 $i$ 橫列,由左而右第 $j$ 直排的格子。你必須對表格依序執行 $Q$ 次操作,操作主要分成兩種。

第一種操作為「旋轉」操作,每個旋轉操作會伴隨著一個正整數 $t$,表示要連續的將整個表格順時針旋轉 $90$ 度 $t$ 次。一個 $R\times C$ 的表格順時針旋轉 $90$ 度後,會變成一個 $C\times R$ 的表格,而原本位於 $(i,j)$ 的格子會跑到 $(j,R+1-i)$。舉例來說,以下左邊 $2\times 3$ 的表格旋轉 $90$ 度一次會變成右邊 $3\times 2$ 的表格。

第二種操作為「翻轉」操作,這種操作還會再細分成四種翻轉操作:水平翻轉、垂直翻轉以及主副對角線翻轉。這四種翻轉操作的變化如下:

  • 水平翻轉:一個 $R\times C$ 的表格經過一次水平翻轉仍然會是一個 $R\times C$ 的表格,但原本在 $(i,j)$ 的格子會跑到 $(i,C+1-j)$。
  • 垂直翻轉:一個 $R\times C$ 的表格經過一次垂直翻轉仍然會是一個 $R\times C$ 的表格,但原本在 $(i,j)$ 的格子會跑到 $(R+1-i,j)$。
  • 主對角線翻轉:一個 $R\times C$ 的表格經過一次主對角線翻轉後會變成一個 $C\times R$ 的表格,而原本在 $(i,j)$ 的格子會跑到 $(j,i)$。
  • 副對角線翻轉:一個 $R\times C$ 的表格經過一次副對角線翻轉後會變成一個 $C\times R$ 的表格,而原本在 $(i,j)$ 的格子會跑到 $(C+1-j,R+1-i)$。

舉例來說,以下左邊 $2\times 3$ 的表格經過水平、垂直、主副對角線翻轉後會分別變成右邊四個表格。

執行完所有操作後,請回答最後表格的長相。

Input Format

第一行輸入三個整數 $N,M,Q$。

接下來輸入 $N$ 行,第 $i$ 行輸入一個長度為 $M$ 的字串 $s_i$,其中 $s_i$ 的第 $j$ 個字元代表一開始 $(i,j)$ 內的小寫英文字母。

接下來再輸入 $Q$ 行,第 $i$ 行包含一個英文字母 $op_i$ 和一個整數 $t_i$,其意義如下:

  • 如果 $op_i=\texttt{R}$,則代表第 $i$ 次操作為旋轉操作,且要連續旋轉 $90$ 度 $t_i$ 次。
  • 如果 $op_i=\texttt{F}$,則代表第 $i$ 次操作為翻轉操作,而 $t_i=1,2,3,4$ 依序代表該次操作為水平翻轉、垂直翻轉、主對角線翻轉以及副對角線翻轉。

範圍限制:

  • $1 \leq N,M,Q\leq 100$
  • 保證所有 $s_i$ 僅由小寫英文字母組成
  • $op_i$ 只可能是 $\texttt{R}$ 或 $\texttt{F}$
  • 如果 $op_i=\texttt{R}$,則 $1\leq t_i\leq 10^ 9$
  • 如果 $op_i=\texttt{F}$,則 $1\leq t_i\leq 4$

Output Format

第一行輸出兩個正整數 $N',M'$,代表經過所有操作後會得到一個 $N'\times M'$ 的表格。

接下來輸出 $N'$ 行,第 $i$ 行輸出一個長度為 $M'$ 的字串 $s'_i$,其中 $s'_i$ 的第 $j$ 個字元代表最後 $(i,j)$ 內的小寫英文字母。

Sample Input 1

3 10 4
baluteshih
littlecube
hsinmutsai
F 3
R 2
F 1
R 103

Sample Output 1

3 10
iastumnish
ebucelttil
hihsetulab

Sample Input 2

3 6 4
wiwiho
howiwi
wihowi
F 4
F 2
R 49
R 1

Sample Output 2

6 3
oii
hww
iio
wwh
ioi
whw

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~34 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2
1 1000 524288 65536 1 2
2 1000 524288 65536 2
3 1000 524288 65536 2
4 1000 524288 65536 2
5 1000 524288 65536 2
6 1000 524288 65536 2
7 1000 524288 65536 2
8 1000 524288 65536 2
9 1000 524288 65536 2
10 1000 524288 65536 2
11 1000 524288 65536 2
12 1000 524288 65536 2
13 1000 524288 65536 2
14 1000 524288 65536 2
15 1000 524288 65536 2
16 1000 524288 65536 2
17 1000 524288 65536 2
18 1000 524288 65536 2
19 1000 524288 65536 2
20 1000 524288 65536 2
21 1000 524288 65536 2
22 1000 524288 65536 2
23 1000 524288 65536 2
24 1000 524288 65536 2
25 1000 524288 65536 2
26 1000 524288 65536 2
27 1000 524288 65536 2
28 1000 524288 65536 2
29 1000 524288 65536 2
30 1000 524288 65536 2
31 1000 524288 65536 2
32 1000 524288 65536 2
33 1000 524288 65536 2
34 1000 524288 65536 2