shapex는 각 사분면에 원형, 사각형, 풍차, 별 모양이 배치된 도형들을 자르고, 합치고, 색칠하여 복잡하고 다채로운 도형들을 만들어내는 것이 목표인 게임이다.
도형들과 그 도형들에 대한 조작이 주어졌을 때 만들어지는 도형을 구하는 프로그램을 작성해 보자.




shapex에서는 도형을 쉽게 나타내기 위해 도형 코드를 사용한다. 다음은 도형 코드에 대한 설명이다.
기본 도형
기본 도형은 총 네 가지로 종류와 코드는 다음과 같다.
, Circle): C
, Rectangle): R
, Windmill): W
, Star): S색상
색상은 총 여덟 가지로 종류와 코드는 다음과 같다.
, Red): r
, Green): g
, Blue): b
, Yellow): y
, Purple): p
, Cyan): c
, Uncolored): u
, White): w도형
도형 코드
--'으로 나타낸다.:'로 구분하여 나타낸다.| 도형 | 도형 코드 |
|---|---|
![]() | CuCuCuCu |
![]() | CbCbCbRb:CwCwCwCw |
![]() | RuCw--Cw:----Ru-- |
![]() | CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw |
도형을 조작하는 여러 가지 기계로 더욱 복잡한 도형을 만들 수 있다. 다음은 도형 조작을 위한 기계들에 대한 설명이다.
절단기
--------'이 되는 경우에는 그 층이 사라지고 그 층보다 높은 층들을 한 층씩 내린다.회전기
결합기
색칠기
다음은 기계의 작동 예시이다.
| 절단기 | ||
|---|---|---|
| 입력 | 서쪽 절반 출력 | 동쪽 절반 출력 |
CrRwWu-- | ----Wu-- | CrRw---- |
CuCu----:--RuRu--:Wu------ | ----Ru-- | CuCu----:--Ru----:Wu------ |
--Rc----:Sw------ | 생성되지 않음 | --Rc----:Sw------ |
| 회전기 | ||
|---|---|---|
| 입력 | 회전 각도 | 출력 |
CrRwWu-- | 90도 | --CrRwWu |
CuCu----:--RuRu--:Wu------ | 180도 | ----CuCu:Ru----Ru:----Wu-- |
CuCu----:--RuRu--:Wu------ | 270도 | Cu----Cu:RuRu----:------Wu |
| 결합기 | ||
|---|---|---|
| 첫 번째 입력 | 두 번째 입력 | 출력 |
CuCu---- | ----RuRu | CuCuRuRu |
CuCu---- | --RuRu-- | CuCu----:--RuRu-- |
Ru----Ru:Ru----Ru:RuRuRuRu | --CuCu--:--CuCu-- | Ru----Ru:Ru----Ru:RuRuRuRu:--CuCu-- |
RuRuRuRu:RuRuRuRu:RuRu----:RuRu---- | ----CuCu:CuCuCuCu:CuCuCuCu | RuRuRuRu:RuRuRuRu:RuRu----:RuRuCuCu |
| 색칠기 | ||
|---|---|---|
| 입력 | 색상 | 출력 |
CrRwWu-- | c | CcRcWc-- |
CuCw----:--RyRg--:Wb------ | b | CbCb----:--RbRb--:Wb------ |
도형 조작을 위해 레지스터를 사용한다. 다음은 레지스터에 대한 설명이다.
첫 번째 줄에 처음 주어지는 도형의 개수 $N$($1 \le N \le 10$)과 조작의 개수 $M$($1 \le M \le 10\,000$)이 공백으로 구분되어 주어진다.
다음 $N$개의 줄에 처음 주어지는 도형의 코드가 순서대로 주어진다. 주어지는 도형들은 모두 1층만 있다. 올바른 도형 코드만 입력으로 주어진다.
다음 $M$개의 줄에 조작이 다음과 같은 형식으로 순서대로 주어진다. 주어지는 모든 레지스터 번호는 $1$ 이상 $100$ 이하의 정수이다.
$1$ $i$ $j$ $k$ $(j \neq k)$
$2$ $i$ $j$ $k$ ($k \in$ {$1$, $2$, $3$})
$3$ $i$ $j$ $k$
$4$ $i$ $j$ $k$ ($k \in$ {'r', 'g', 'b', 'y', 'p', 'c', 'w'})
모든 조작을 완료한 후 $R_{100}$에 저장된 값을 출력한다. 도형일 경우 도형 코드를 출력하고, None일 경우 None을 출력한다.