카드 색칠
시간 제한1초메모리 제한512 MB
일부 색이 정해진 카드 행에서 0인 카드에 빨강, 초록, 파랑 중 하나를 칠해 이웃한 카드의 색이 다르게 만들거나, 불가능하면 -1을 출력합니다.
문제
영우는 나코더 신입생들을 환영하려고 입부 환영 카드를 정성껏 만들었다. 부기장 이환이는 이 카드들을 색칠하기로 했다. 카드는 일렬로 놓여 있고, 각 카드는 빨간색, 초록색, 파란색 중 하나로 칠해야 한다. 카드 몇 장은 영우가 이미 색칠해 두었다.
색칠은 다음 규칙을 따라야 한다.
- 인접한 카드는 서로 다른 색으로 칠해야 한다.
- 이미 색칠된 카드는 다시 칠할 수 없다.
- 카드의 순서는 바꿀 수 없다.
입력
첫째 줄에 카드의 개수 이 주어진다.
둘째 줄에는 개의 정수가 공백으로 구분되어 주어진다. 번째 정수 는 번째 카드의 색을 나타낸다. 1, 2, 3은 각각 빨간색, 초록색, 파란색을 뜻하고, 0은 번째 카드가 아직 색칠되지 않았음을 뜻한다.
출력
한 줄에 개의 정수를 공백으로 구분하여 출력한다. 각 정수는 1, 2, 3 중 하나이며, 위의 규칙을 만족해야 한다. 가능한 방법이 여러 가지라면 그중 아무것이나 출력한다. 모든 조건을 만족하는 색칠이 불가능하면 -1을 출력한다.
제한
- 주어지는 모든 수는 정수이다.