[BOJ 16116] 작은 큐브러버

View as PDF

Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 512M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

작은 큐브러버는 작은 8개의 1×1×1 정육면체 조각을 갖고 있었어요. 각 조각에는 색이 칠해진 스티커가 붙어 있는 면이 세 개씩 있는데, 그 세 개의 면은 하나의 꼭짓점을 공유하고 있어요. 작은 큐브러버는 이 조각들을 잘 조립해서 각 면에 있는 4장의 스티커의 색이 서로 같고, 서로 다른 면에 있는 스티커는 서로 색이 다른 작은 2×2×2 큐브를 만들었어요. 작은 큐브러버는 작은 큐브를 매우 사랑했답니다.</p>

작은 큐브

그런데 어느 날 작은 큐베러버가 날아와 작은 큐브에 붙어 있는 스티커들을 뒤섞고, 작은 큐브를 다시 8개의 조각으로 분해해 버렸어요. 스티커들을 뒤섞었다는 것은 임의의 두 개의 스티커를 떼어낸 다음 위치를 바꿔서 붙이는 것을 충분히 많이 반복했다는 뜻이에요.

작은 큐브러버는 너무 슬펐지만 용기를 내어, 작은 큐베러버를 삐-하고 8개의 조각들을 되찾았어요. 작은 큐브러버는 이 조각들을 조립해서 다시 작은 큐브를 만들고 싶어해요. 작은 큐브러버를 도와주세요!

입력 형식

8개의 줄에 걸쳐 각 조각을 스티커가 붙어 있는 세 개의 면이 전부 보이도록 놓았을 때, 각 스티커에 칠해진 색을 윗면, 왼쪽 면, 오른쪽 면 순서로 읽은 결과가 주어진다. 각각의 색은 B(blue), G(green), O(orange), R(red), W(white), Y(yellow) 중 하나의 알파벳으로 표현된다. 예를 들어 위의 이미지의 중앙에 있는 조각은 Y B R로 주어진다.</p>

입력에는 각각의 알파벳이 같은 개수만큼 등장함이 보장된다.

출력 형식

조각을 조립해서 문제의 조건을 만족하는 작은 2×2×2 큐브를 만들 수 있을 경우 YES, 불가능하다면 NO를 출력한다.

예제 입력 1

W B O
B W R
G O Y
R W G
Y O B
O G W
B R Y
G Y R

예제 출력 1

YES

예제 입력 2

R O W
B Y G
W B O
W R G
Y R O
G Y R
W G B
O B Y

예제 출력 2

NO

힌트

첫 번째 예시의 조각들로는 아래와 같은 색 배치의 큐브를 만들 수 있다.</p>

첫 번째 예시의 큐브 색 배치


Comments

There are no comments at the moment.