모호한 부호화
시간 제한2초메모리 제한512 MB
서로 다른 이진 부호어 집합이 주어질 때, 서로 다른 두 문자 열이 같은 비트 열로 부호화될 수 있는지 판별하고, 가능하면 가장 짧은 그런 비트 열의 길이를 출력한다.
문제
어떤 친구가 문자 집합을 가변 길이 비트열 집합으로 부호화하는 방식을 설계하고 있다. 당신은 이 부호화가 모호한지 판별해야 한다. 부호화 방식에서 각 문자에는 서로 다른, 길이가 다를 수 있는 비트열이 부호로 주어진다. 문자열은 그 문자열에 등장하는 문자들의 부호를 순서대로 이어붙인 비트열로 부호화된다. 서로 다른 두 문자열이 정확히 같은 비트열로 부호화되는 경우 그 부호화 방식은 모호하다고 한다. 이런 비트열을 "모호한 이진열"이라고 부른다.
예를 들어 문자 "A", "B", "C"를 각각 0, 01, 10으로 부호화하는 방식은 모호하다. 이 방식은 서로 다른 두 문자열 "AC"와 "BA"를 같은 비트열 010으로 부호화한다.
입력
입력은 다음과 같은 형식의 단일 테스트 케이스로 주어진다.
n
w1
.
.
.
wn
n은 부호화할 문자 집합의 크기이다 (1 ≤ n ≤ 1000). 이어지는 n개 줄에서 i번째 줄 wi는 i번째 문자의 비트열을 나타내며, 길이가 16 이하인 0 또는 1의 비트열이다. 서로 다른 문자에는 서로 다른 부호가 주어지므로 i ≠ j이면 wi ≠ wj이다.
출력
주어진 부호화가 모호하면 가장 짧은 모호한 이진열의 비트 수를 한 줄에 출력한다. 그렇지 않으면 0을 출력한다.