알 수 없는 각 문장을 영어 또는 프랑스어로 배정해 두 언어에 모두 속한 단어 수를 최소화합니다.
보통4완전 탐색비트 연산해시맵면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB영선이의 부모님은 집에서 영어와 프랑스어를 섞어 영선이와 대화한다. 영선이는 많은 단어를 들었지만 어떤 단어가 영어이고 어떤 단어가 프랑스어인지는 모른다.
영선이가 아는 것은 세 가지다. 확실히 영어로 쓰인 문장 하나, 확실히 프랑스어로 쓰인 문장 하나, 그리고 어느 언어인지 알 수 없는 문장 여러 개.
문장 하나는 통째로 한 언어로 쓰였다. 어떤 단어가 영어 문장에 한 번이라도 나타나면 그 단어는 영어이고, 프랑스어 문장에 한 번이라도 나타나면 그 단어는 프랑스어이다. 두 조건을 모두 만족하는 단어를 영어이면서 프랑스어인 단어라고 한다.
알 수 없는 문장에 언어를 하나씩 배정하는 방법은 여러 가지다. 영어이면서 프랑스어인 단어가 가장 적어지도록 배정했을 때 그 개수를 구하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. (1≤T≤25)
각 테스트 케이스의 첫째 줄에는 문장의 개수 N이 주어진다. (2≤N≤20) 이어지는 N개의 줄에 문장이 한 줄에 하나씩 주어진다.
문장은 공백으로 구분된 단어로 이루어진다. 단어는 알파벳 소문자로만 이루어지고 길이는 10을 넘지 않는다.
각 테스트 케이스의 첫 번째 문장은 영어 문장이고 두 번째 문장은 프랑스어 문장이다. 나머지 N−2개의 문장은 언어를 알 수 없다.
첫 두 문장은 각각 단어를 최대 1,000개 포함하고, 나머지 문장은 각각 최대 10개 포함한다.
각 테스트 케이스마다 한 줄에 Case #x: y 형식으로 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 영어이면서 프랑스어인 단어의 최소 개수이다.