다섯 용사의 검
시간 제한5초메모리 제한1024 MB
서로 겹치지 않는 다섯 검의 공격력 후보 집합이 주어질 때, 최악의 경우에도 가장 강한 검을 찾는 데 필요한 시험 횟수의 최솟값을 구합니다.
문제
당신은 오천 년 만에 봉인에서 깨어난 마왕을 물리치기 위해 모험을 떠났다. 숲속을 탐험하던 중 의문의 남자를 마주쳤다. 남자는 당신에게 다가와 다섯 개의 검을 내밀며 말했다.
"오천 년 전에 존재했던 다섯 명의 용사 중 가장 강력한 검을 가진 자만이 마왕을 봉인할 수 있었다. 이것은 그들에게 전수받은 검이다. 신중하게 선택하여라."
각각의 검은 양의 정수인 공격력을 가지는데, 공격력이 얼마인지 맨눈으로 판별하기는 어렵다. 한때 견습 대장장이였던 당신은 각 검이 가질 수 있는 공격력 후보 집합을 알아냈다. 서로 다른 두 검의 공격력 후보 집합은 공통 원소를 가지지 않는다. 따라서 모든 검의 공격력은 서로 다르다.
당신은 남자에게 검의 공격력을 시험해 보겠다고 말했고, 남자는 승낙했다.
검을 시험하는 방법은 다음과 같다. 양의 정수 을 정한 뒤, 주변에서 단단함이 인 바위를 찾아 다섯 개의 검으로 한 번씩 베어 본다. 바위에 균열이 생기면 검의 공격력이 보다 높은 것이고, 그렇지 않으면 검의 공격력이 이하인 것이다.
당신은 검을 여러 차례 시험해서 가장 강력한 검, 즉 공격력이 가장 높은 검을 찾고자 한다. 다음 시험에 쓸 바위의 단단함은 이전 시험들의 결과를 보고 정할 수 있다. 검의 공격력을 정확히 알아낼 필요는 없다. 가장 강력한 검이 무엇인지만 찾아내면 된다.
당신은 최선의 방법으로 검을 시험하고자 한다. 모든 가능성을 따졌을 때 검을 시험해야 하는 횟수의 최댓값이 가능한 한 작아야 한다. 당신이 최선의 방법으로 검을 시험한다면, 가장 강력한 검을 찾기 위해 최대 몇 번의 시험이 필요한가?
입력
총 다섯 개의 줄이 주어진다. 번째 줄의 맨 앞에는 번째 검이 가질 수 있는 공격력 후보 집합 의 크기가 주어진다. 그 뒤로 의 원소들이 오름차순으로 주어진다. 모든 값은 공백으로 구분되어 주어진다.
각 에 대해 는 양의 정수이며, 모든 의 합은 이하이다.
주어지는 모든 공격력은 서로 다른 양의 정수이며, 이하이다.
출력
최선의 방법으로 검을 시험한다면, 가장 강력한 검을 찾기 위해 최대 몇 번의 시험이 필요한지 출력한다.
힌트
첫 번째 예제에서 각 검의 공격력이 이라면, 검을 시험하는 과정의 예는 다음과 같다.
- 먼저 단단함이 인 바위로 검을 시험한다. 모든 검이 바위에 균열을 내지 못한다.
- 그 다음 단단함이 인 바위로 시험한다. 2번째와 4번째 검은 바위에 균열을 내고, 1번째, 3번째, 5번째 검은 균열을 내지 못한다.
두 시험 결과로 2번째 검이 가장 강력하다는 것을 알 수 있다. 공격력이 어떻게 되어 있든 최대 두 번의 시험으로 가장 강력한 검을 찾을 수 있다.
두 번째 예제에서는 검을 시험하지 않아도 3번째 검이 가장 강력하다는 것을 알 수 있다.