大陸人最喜歡吃冰塊了,不過每次都只吃普通的冰塊實在太單調了,某天他決定把各種不同的飲料放進冷凍庫,製造出許多不同口味、不同顏色的冰塊。
他將這些冰塊先排成一個矩形,準備按照順序吃下,但是他突然發現好像可以用這些冰塊,排成有趣的圖案。他有可能會做的事情有三種:將兩顆冰塊對調、將兩列冰塊對調、將兩欄冰塊對調。
現在告訴你大陸人做的所有動作,請輸出最終冰塊排成圖形。注意,有時候大陸人會腦筋不清楚,所以可能會出現「把a和a交換」這種動作,代表大陸人把一塊(或一排)冰塊拿起來後又放回原本的地方了。
本題滿分為150分。
本題輸出量較大,使用C++的同學,輸出換行時請避免使用endl
(請改用'\n'
),以避免超時。
輸入第一行有兩個正整數$M,N$,分別代表一開始矩形的列數和欄數。
接下來會有$M$列,每列有$N$個以空白隔開的色碼,代表每塊冰塊的顏色。色碼的格式為#xxxxxx
,其中每個x
是0
到9
或大寫A
到F
共16種字元的其中之一。
接下來會有一個非負整數$P$,代表大陸人總共做了多少動作。
接下來有$P$行,每一行代表一個動作。
如果是將兩顆冰塊對調,會以字元S
代表,後面接四個正整數$x_1,y_1,x_2,y_2$,代表兩個要交換的冰塊座標。
如果是將兩列冰塊對調,會以字元R
代表,後面兩個正整數$a,b$,代表要交換的兩列編號。
如果是將兩欄冰塊對調,會以字元C
代表,後面兩個正整數$a,b$,代表要交換的兩欄編號。
保證所有動作的座標、欄數、列數都是合法的(不會超出範圍)。
對於所有測資,$M\times N\leq 10^ 6; P\leq 10^ 6$。
子任務(測資) | 額外限制 | 分數 |
1 (0) | $M=N=1$ | 5 |
2 (0~3) | $M=1$ | 33 |
3 (4~7) | $M,N,P\leq 1000$ | 49 |
4 (8~11) | 沒有「將兩顆冰塊對調」的操作 | 23 |
5 (0~15) | 無限制 | 40 |
輸出$M$行,每行$N$個色碼(色碼之格式請參見輸入格式),代表最終冰塊編排的樣子。
建國中學106學年度校隊選拔:初試pA
No. | Testdata Range | Score |
---|---|---|
1 | 0~3 | 33 |
2 | 4~7 | 49 |
3 | 8~11 | 23 |
4 | 0~15 | 40 |
5 | 0 | 5 |