섞어 만들기
시간 제한1초메모리 제한128 MB
서로 다른 단어들이 주어질 때, 각 단어가 앞 단어에 글자 하나를 더해 재배열한 것이 되는 가장 긴 사슬의 길이를 구한다.
문제
소문자로 이루어진 단어들의 목록이 주어진다. 이 목록에서 각 가 의 섞은 확장(mixed extension) 이 되는 가장 긴 단어 사슬 을 찾아라.
단어 가 단어 의 섞은 확장 이라는 것은, 에 글자 하나를 더한 뒤 모든 글자를 임의의 순서로 재배열하여 를 만들 수 있다는 뜻이다. 즉, 의 글자 다중집합이 의 글자 다중집합에 글자 하나를 더한 것과 같을 때 (따라서 의 길이는 의 길이보다 정확히 크다), 는 의 섞은 확장이다.
예를 들어 단어 ab, bar, crab, cobra, carbon 은 각 단어가 바로 앞 단어의 섞은 확장이므로 길이 의 사슬을 이룬다.
입력
입력은 최소 개, 최대 개의 줄로 이루어진다. 각 줄에는 단어가 하나씩 들어 있다. 각 단어의 길이는 이상 이하이며 소문자로만 이루어진다. 모든 단어는 서로 다르다.
출력
가장 긴 사슬의 길이, 즉 그 사슬에 포함된 단어의 개수를 정수 하나로 출력하라.