페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
60000
ms
메모리 제한
1024
MB
각 카드에 정수가 하나씩 적혀 있는 카드 게임을 한다.
게임을 하기 위해 몇 장의 카드, 즉 패가 주어진다. 그런 다음 패에 있는 카드를 스트레이트들로 배열한다. 스트레이트는 값이 연속하는 카드들의 집합이다. 예를 들어 세 카드 {3, 4, 5}나 한 장의 카드 {7}가 스트레이트이다. 그 후 가장 짧은 스트레이트의 길이와 같은 액수의 달러를 받는다. 카드가 없으면 스트레이트를 만들 수 없으므로 영 달러를 받는다.
각각 패에 들어 있을 카드를 설명하는 일련의 테스트 케이스가 주어진다. 각 테스트 케이스에서 받을 수 있는 달러의 최댓값을 구한다.
1 ≤ T ≤ 100 카드에 적힌 수는 1 이상 10000 이하이다. 메모리 제한: 1GB.
0 ≤ N ≤ 10 시간 제한: 30초.
0 ≤ N ≤ 1000 시간 제한: 60초.
입력의 첫째 줄에는 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어진다. 각 줄에는 패에 있는 카드의 수 N이 먼저 주어지고, 이어서 그 카드들에 적힌 수를 나타내는 N개의 정수가 주어진다. 이 수들은 모두 공백으로 구분된다.
각 테스트 케이스마다 "Case #x: y"를 한 줄에 출력한다. 여기서 x는 테스트 케이스 번호이며 1부터 시작하고, y는 받을 수 있는 달러의 최댓값이다.
4
10 1 2 3 4 5 10 9 8 7 6
8 101 102 103 104 105 106 103 104
0
5 1 2 3 4 9
Case #1: 10
Case #2: 4
Case #3: 0
Case #4: 1
테스트 케이스 1에서는 1부터 10까지의 번호가 적힌 카드 열 장이 있으므로, 길이가 10인 스트레이트 하나를 만들고 10달러를 받는다.
테스트 케이스 2에서는 두 스트레이트 {101,102,103,104,105,106}와 {103,104}를 만들어 2달러를 받을 수 있다. 하지만 {101,102,103,104}와 {103,104,105,106}를 만들어 4달러를 받는 편이 더 낫다.
테스트 케이스 4에서는 번호가 9인 카드가 그 카드 하나만을 포함하는 스트레이트에 반드시 속해야 한다. 따라서 1달러를 받는다.
테스트 케이스 3에서는 카드가 영 장이므로 영 달러를 받는다. 아무것도 하지 않고 돈을 받을 수는 없다.
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.