큐브
시간 제한1.5초메모리 제한1024 MB
N x N x N 정육면체의 칸 색을 바꾸고, 지정한 면을 앞으로 돌렸을 때 각 칸에서 처음 보이는 색을 출력합니다.
문제
개의 단위 큐브로 이루어진 크기 의 큐브를 떠올려 보자. 각 단위 큐브는 처음에 색이 없어서 투명하며, 그 너머가 보인다. 요청에 따라 각 단위 큐브의 색은 시간이 지나면서 바뀔 수 있다.
큐브는 유리로 된 회전 받침대 위에 놓여 있다. 큐브에는 앞면, 뒷면, 왼쪽 면, 오른쪽 면, 윗면, 아랫면이 있다. 처음에는 앞면이 눈높이에서 나를 향해 있다. 투명한 단위 큐브를 통과해 보면 처음으로 색이 있는 단위 큐브까지 보인다.
개의 질의가 주어진다. 번째 질의는 다음 두 형태 중 하나이다.
1 X_i Y_i Z_i C_i: 위에서 아래로 세어 행, 왼쪽에서 오른쪽으로 세어 열, 앞에서 뒤로 세어 깊이 에 있는 단위 큐브의 색을 로 바꾼다. 이때 큐브는 처음 방향이며 앞면이 나를 향해 있다.2 S_i: 면 가 앞면(눈앞)에 오도록 큐브를 회전한 뒤, 지금 보이는 색의 표를 출력한다. 어떤 칸이 큐브를 끝까지 투과해 보인다면 그 칸에는 을 출력한다. 그다음 큐브를 처음 위치로 되돌려 앞면이 다시 나를 향하게 한다.
입력
첫 줄에 자연수 과 가 주어진다 (, ).
이어지는 개의 줄에 첫 번째 종류 또는 두 번째 종류의 질의가 하나씩 주어진다.
- 질의의 첫 번째 수가
1이면 이어서 자연수 , , , 가 주어진다 (, , , ). - 질의의 첫 번째 수가
2이면 이어서 문자열 가 주어진다. 는prednja,straznja,lijeva,desna중 하나이며, 앞면으로 회전시킬 면을 나타낸다.
출력
두 번째 종류의 질의마다 그 답으로 표를 출력한다.
힌트
첫 번째 예제에서 큐브의 단위 큐브는 모두 색이 없다. 첫 질의는 앞면을 묻는다. 앞면은 이미 나를 향해 있으므로 회전이 필요 없다. 큐브가 완전히 투명하므로 답은 0으로 채워진 표이다.
다음 두 질의로 앞-위-왼쪽 모서리의 단위 큐브를 색 로, 뒤-아래-오른쪽 모서리의 단위 큐브를 색 로 바꾼다. 그다음 두 질의는 뒷면을 앞으로 가져왔을 때와 오른쪽 면을 앞으로 가져왔을 때의 모습을 묻는다. 첫 번째 경우 색 인 큐브는 오른쪽 위 모서리에, 색 인 큐브는 왼쪽 아래 모서리에 놓인다. 두 번째 경우는 앞에서 본 것과 같다.
두 번째 예제에서는 큐브의 2행, 깊이 2에 있는 단위 큐브들의 색을 바꾼다. 왼쪽에서 보면 색 인 큐브만 보이고, 오른쪽에서 보면 색 인 큐브만 보인다.