Mango 很喜歡玩一款叫做 ReflecMino 的遊戲,遊戲裡面會有兩條光線,並且要擺放包含平面鏡的積木,讓光線經過格子和平面鏡到達邊界的終點。以下是遊戲畫面:
遊戲的時候,會顯示藍色光線經過的格子以及橘色光線經過的格子
如果橘色和藍色的格子同時經過同一個格子 (像右下角) 則會顯示為白色
Mango 想要寫一個程式,讓他能夠模擬現在的地圖中平面鏡的所有擺放位置和角度,並且計算出光線的行走路線,為了簡化,他把積木的元素去除掉了,只留下平面鏡和格子。
現在在一個 $n\times m$ 的方格世界外圍,各有一個入射點:B(藍色光束)與 G(橘色光束)。格子中有三種物件:
\
與 /
:平面鏡,兩者均為 45° 角鏡面,滿足「入射角=反射角」;.
:空白,不改變光束方向;B
和一個 G
。光束從邊界入射後,每步沿當前方向前進一格:
.
保持原方向;\
或 /
,依鏡面方向反射;第一行為兩個整數 $n$, $m$。
接下來 $n+2$ 行,每行 $m+2$ 個字元,其中:
B
和一個 G
;\
、鏡面 /
或空白 .
。資料範圍:
B
, G
會出現在邊界上,且不會在角落。在內層格子中:
B
;G
;W
(白光);.
。輸出整個內層格子,地圖大小為 $n \times m$
5 5 ....B.. ....\\. G..\./. ././.\. ....... .\./... .......
..BBB GGWBB GGGGG G.G.G GGG.G
3 3 ..... ..... B..\. ././. .G...
... WWW WWW
YTP 2025 國中組初賽 p4
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~1 | 範例測試資料 | 0 |
2 | 0~43 | 無額外限制 | 15 |