주사위로 만드는 가장 긴 스트레이트
면접 대비메모리 제한1024 MB
주사위마다 면의 수 S_i가 주어질 때, 각 주사위가 연속된 정수를 하나씩 보여 만들 수 있는 가장 긴 연속 수열의 주사위 개수를 구합니다.
문제
가장 흔한 주사위는 면이 6개이며, 각 면에 1부터 6까지의 서로 다른 정수가 하나씩 적혀 있다. 다른 종류의 주사위를 쓰는 게임도 많다. 는 면이 이고, 각 면에 1부터 까지의 서로 다른 정수가 하나씩 적힌 주사위다. 은 일반적인 주사위이고, 는 면이 4개이며, 은 면이 백만 개다.

개의 주사위로 시작한다. 번째 주사위는 이며, 1부터 까지의 정수가 적힌 면을 개 가진다. 에서 시작하는 길이 의 스트레이트는 정수 목록 이다. 주사위를 일부 또는 전부 골라 각 주사위에서 숫자를 하나씩 뽑아 스트레이트를 만든다. 만들 수 있는 가장 긴 스트레이트의 길이는 얼마인가?
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 주사위의 개수 이 주어진다. 둘째 줄에는 개의 정수 이 주어지며, 각 정수는 서로 다른 주사위의 면 수다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. 는 테스트 케이스 번호(1부터 시작)이고, 는 스트레이트에 사용할 수 있는 주사위 개수의 최댓값이다.
제한
.
힌트
1번 예제에서는 주사위 4개를 모두 사용해 스트레이트를 만드는 방법이 여러 가지다. 그중 한 가지가 위 그림에 나와 있다.
2번 예제에서는 어떤 주사위도 5보다 큰 수를 보여 줄 수 없으므로, 스트레이트에 주사위 5개보다 많은 수를 쓸 수 없다. 정확히 주사위 5개로 스트레이트를 만드는 방법은 여러 가지다. 예를 들어 두 d5에서 각각 4와 5를 고르고, 세 d4에서 1, 2, 3을 골라 1, 2, 3, 4, 5를 만들 수 있다.
3번 예제에서는 1부터 9까지의 스트레이트가 가능하다. d4 하나를 버리고, 남은 d4들과 d5, d6으로 1부터 4까지를 얻는다. d7들로 5부터 7까지를, d10들로 8과 9를 얻는다. 길이 10의 스트레이트는 만들 수 없으므로 이것이 최선이다.
4번 예제에서는 길이 1의 스트레이트만 만들 수 있으며, 주어진 d10에서 어떤 정수를 고르든 된다.