a064. 招牌洗牌

中等陣列字串模擬

時間限制 2000 ms ・ 記憶體限制 256 MB

題目描述

商店門口的電子招牌由 R 列、C 行的字母燈組成。老闆能按鈕讓其中一整列向右捲動,或讓其中一整行向下捲動。這不是把字母丟掉:捲出邊界的字母會繞回同一列或同一行的另一端,形成循環。

操作 R r k 只影響第 r 列:該列每個字母同時往右移動 k 格,超出最右邊便從最左邊出現。操作 C c k 只影響第 c 行:該行每個字母同時往下移動 k 格,超出最下方便從最上方出現。沒有被指定的其他列或行不會在該次操作中主動移動。

老闆會連續下達多個指令,後一個指令看到的是前一個指令完成後的招牌。因此,先移列再移行,和先移行再移列,結果不一定相同。移動 0 格或剛好移動完整一圈時,該次操作不改變畫面;很大的 k 也照循環規則處理。

輸入格式

第一行 R C,接著 R 行字母;下一行為操作數 Q;接著 Q 行,每行格式為 R r k 或 C c k。列、行編號從 1 開始。

限制

  • 1 ≤ R, C ≤ 50;1 ≤ Q ≤ 200;0 ≤ k ≤ 10⁹
  • 方格只包含大寫英文字母,操作編號都在範圍內

輸出格式

輸出操作後的 R 行字母方格。

範例1

範例輸入:

2 3
ABC
DEF
2
R 1 1
C 2 1

範例輸出:

CEB
DAF

先把第一列 ABC 右移成 CAB;接著第二行的 A、E 循環向下交換,得到最後的兩列。

範例2

範例輸入:

1 1
Z
2
R 1 100
C 1 200

範例輸出:

Z

列與行都只有一格,無論循環移動多少次,字母仍是 Z。

範例測資

範例輸入 1

2 3
ABC
DEF
2
R 1 1
C 2 1

範例輸出 1

CEB
DAF

範例輸入 2

1 1
Z
2
R 1 100
C 1 200

範例輸出 2

Z
請先登入後再提交程式碼

討論與題解

載入討論區…

更多