보이지 않는 정수
시간 제한5초메모리 제한512 MB
서로 다른 숫자 1부터 9로 이루어진 최대 10개의 힌트가 주어질 때, 모든 힌트를 만들어낼 수 있는 가장 짧은 숨은 수열의 길이를 구한다.
문제
보이지 않는 정수는 힌트 몇 개만 보고 숨겨진 수열을 알아맞히는 놀이다. 숨겨진 수열은 1부터 9까지의 정수로 이루어진다. 각 힌트는 서로 다른 정수의 수열이고, 다음 방법으로 만든다.
- 숨겨진 수열에서 시작 위치를 하나 고른다.
- 방향을 하나 고른다. 왼쪽 또는 오른쪽이다.
- 고른 위치에서 출발해 고른 방향으로 숨겨진 수열의 끝까지 정수를 차례로 따라간다. 따라가며 만난 정수를 힌트 뒤에 덧붙이되, 이미 힌트에 들어 있는 정수는 건너뛴다.
주어진 힌트를 모두 만족하는 숨겨진 수열 중 가장 짧은 것의 길이를 구하라.
입력
첫째 줄에 힌트의 개수 이 주어진다 (). 다음 개 줄에 힌트가 한 줄에 하나씩 주어진다. 각 힌트는 1 이상 9 이하의 서로 다른 정수를 1개 이상 9개 이하 공백으로 구분해 나열하고, 마지막에 정수 0을 붙인 것이다.
출력
모든 힌트를 만족하는 수열이 없으면 -1을 출력한다. 있으면 그런 수열 중 가장 짧은 것의 길이를 정수 하나로 출력한다.
노트
첫 번째 예제에서 는 주어진 힌트를 모두 만족하는 가장 짧은 수열 중 하나다.
- 힌트 는 3번째 원소에서 출발해 왼쪽으로 가면 나온다.
- 힌트 는 6번째 원소에서 출발해 오른쪽으로 가면 나온다.
- 힌트 은 3번째 원소에서 출발해 오른쪽으로 가면 나온다.
- 힌트 는 6번째 원소에서 출발해 왼쪽으로 가면 나온다.
- 힌트 은 1번째 원소에서 출발해 오른쪽으로 가면 나온다.