TopCoder

guagua0407
$ diaob $

User's AC Ratio

75.0% (3/4)

Submission's AC Ratio

80.0% (4/5)

Tags

Description

FHVirus 一直沈迷於魔術方塊。要知道,認真的投入魔術方塊除了要能夠順暢的解出各種魔術方塊外,還要能解得快。對此,他不但接觸了各種不同種類的魔術方塊,還參加了各種大大小小的魔術方塊比賽。

這樣喜愛魔術方塊的 FHVirus 在最近接觸到了程式設計,同時也很喜歡程式設計的他決定結合他在魔術方塊的興趣,自己寫出一個「魔術方塊打亂器」來幫助他練習。

什麼是魔術方塊打亂器呢?魔術方塊玩家為了要練習,他們必須時常重複將魔術方塊打亂再嘗試快速復原的動作,但如果一直隨意的打亂的話,人類無可避免的習慣會讓他們總是接觸到類似的打亂方法。因此,撰寫一個公平的「打亂器」就顯得非常重要了。

因此,所謂的「魔術方塊打亂器」,就是會負責隨機產生一串「打亂公式」,再由玩家照著這個公式打亂。玩家在打亂後,再照著自己習慣的方式練習快速復原。

不過,FHVirus 才剛開始學程式而已,因此他決定先從最簡單的「二階魔術方塊打亂器」開始寫起。

首先我們要認識什麼是「二階魔術方塊」,如下圖:

上圖中,左方就是一個二階魔術方塊的樣子,他有著六個面,每個面分別由四格方格組成,常由黃、橘、藍、紅、綠、白六種顏色組成。而右方則是他的展開圖,可以實際看見六個面的顏色,其中黃、橘、藍、紅、綠、白分別以 YOBRGW 簡寫之。

接著,我們會介紹三個在二階魔術方塊上的基本操作。

1 . F 操作

F 操作會順時針地轉動魔術方塊前方的面,如下圖:

上圖中,左側顯示了旋轉的面及方向,右側則是轉動後展開圖會變成的樣子。

為了簡化步數,我們會以 F2 則表示「180 度地旋轉魔術方塊前方的面」,同時也可以想成執行 F 操作兩次;F' 來表示「逆時針地轉動魔術方塊前方的面」,同時也可以想成執行 F 操作三次。

2 . R 操作

R 操作會順時針地轉動魔術方塊右方的面,如下圖:

上圖中,左側顯示了旋轉的面及方向,右側則是轉動後展開圖會變成的樣子。

為了簡化步數,我們會以 R2 則表示「180 度地旋轉魔術方塊右方的面」,同時也可以想成執行 R 操作兩次;R' 來表示「逆時針地轉動魔術方塊右方的面」,同時也可以想成執行 R 操作三次。

3 . U 操作

U 操作會順時針地轉動魔術方塊上方的面,如下圖:

上圖中,左側顯示了旋轉的面及方向,右側則是轉動後展開圖會變成的樣子。

為了簡化步數,我們會以 U2 則表示「180 度地旋轉魔術方塊上方的面」,同時也可以想成執行 U 操作兩次;U' 來表示「逆時針地轉動魔術方塊上方的面」,同時也可以想成執行 U 操作三次。

有了以上這些基本操作後,是時候開始來寫二階魔術方塊打亂器了。首先,我們必須先寫出一份「打亂公式產生器」,是負責產生一連串的基本操作用的。接著,我們還得寫出一份「轉動模擬器」,負責模擬出二階魔術方塊照著打亂公式打亂後的樣子,來讓玩家可以在自行照著公式打亂後,確認自己是否有打亂錯誤。

產生器的部份 FHVirus 已經先寫好了,不過模擬器的部份他卻遇到了障礙。你可以幫他撰寫一個模擬器,在讀入打亂公式後,輸出二階魔術方塊照著打亂公式打亂後的樣子嗎?

(備註:此題網站上的輸出因顯示問題無法顯示行頭空白,請參考題本或 Output Format 欄位)

Input Format

輸入首行有一個正整數 $N$,代表該次產生器產生出來的打亂公式長度。

接下來一行 $N$ 個字串,每個字串會是九種基本操作,FF'F2RR'R2UU'U2 之一。

  • $1\leq N\leq 100$

Output Format

輸出照著打亂公式打亂後魔術方塊的展開圖,最初的狀態如題敘中第一張圖右方的展開圖所示。

對於展開圖,評測端會進行嚴格比對,意即你必須依照以下範例格式輸出:

  YY
  YY
GGOOBBRR
GGOOBBRR
  WW
  WW

其中第一、二、五、六行最前方都有兩個空格字元(ASCII 編號 32),且每一行最後都有一個換行字元(ASCII 編號 10)。注意到第一、二、五、六行的後方都沒有多餘的空格字元,也就是他們的長度比四、五行都要少四。

Sample Input 1

8
U F R F R U F R

Sample Output 1

WB
RG
OBWWORYB
GYGOYGYR
RB
WO

Sample Input 2

10
F2 R' U F' R2 U2 F R' F' R

Sample Output 2

OY
RG
GBWYROBY
GRBBWOWR
YO
WG

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~8 無額外限制 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