벽돌 줄 세우기
시간 제한3초메모리 제한256 MB
모든 벽돌을 이웃한 색이 다르고 양 끝이 p와 q가 되게 늘어놓고 사전 순으로 가장 앞선 경우나 0을 출력합니다.
문제
비티와 친구들은 어제 하루 종일 유치원에서 색깔 벽돌을 가지고 놀았다. 처음에는 건물 모형을 만들었지만 금방 싫증이 나서, 벽돌을 한 줄로 늘어놓기로 했다. 줄이 밋밋해 보이지 않도록 같은 색 벽돌은 서로 옆에 두지 않았고, 한참 만에 모든 벽돌을 이 규칙대로 늘어놓는 데 성공했다. 그리고 하원 시간이 되어 아이들은 집으로 돌아갔다.
오늘 아침 일찍 유치원에 온 비티는 어제 만든 줄이 그대로 남아 있는 것을 보고 기뻐했다. 그런데 하필 그 줄 위로 넘어지는 바람에 벽돌이 모두 흐트러져 한 무더기가 되었다. 비티는 벽돌을 색깔별로 모아 놓고, 어떻게 하면 완벽한 줄을 빨리 다시 만들 수 있을지 고민한다. 다행히 줄의 양 끝에 놓여 있던 벽돌 두 개의 색은 기억하고 있다.
비티가 가진 색깔별 벽돌 개수와 양 끝 벽돌의 색이 주어진다. 이웃한 두 벽돌의 색이 서로 다르고, 첫 벽돌의 색이 , 마지막 벽돌의 색이 인 줄을 만들어라. 비티가 색을 잘못 기억했을 수도 있고 넘어진 뒤 찾지 못한 벽돌이 있을 수도 있어서, 줄을 다시 만들지 못하는 경우도 있다.
입력
첫째 줄에 벽돌 색의 개수 , 줄의 첫 벽돌 색 , 마지막 벽돌 색 가 공백 하나로 구분되어 주어진다. (, )
둘째 줄에 개의 정수 가 공백 하나로 구분되어 주어진다. 는 비티가 가진 색 벽돌의 개수다. ()
벽돌의 총 개수 는 이하다.
출력
조건을 만족하는 줄에 놓인 벽돌의 색을 앞에서부터 개, 공백 하나로 구분해 한 줄에 출력한다. 첫 벽돌의 색은 , 마지막 벽돌의 색은 이고, 이웃한 두 벽돌의 색은 서로 달라야 한다.
조건을 만족하는 줄이 여럿이면 그중 사전순으로 가장 앞서는 줄 하나만 출력한다. 조건을 만족하는 줄이 하나도 없으면 정수 0 하나만 출력한다.
노트
길이가 같은 두 줄 와 를 비교할 때는 색이 처음으로 달라지는 자리를 본다. 그 자리에 더 작은 색 번호가 놓인 줄이 사전순으로 앞선다.