ICPC 최적 제출 전략

시간 제한1초메모리 제한128 MB

문제

세 명으로 이루어진 팀이 ICPC 형식의 프로그래밍 대회에 참가한다. 대회 시간은 정확히 300분이다.

팀의 점수는 해결한 각 문제에 대해 소요된 시간의 총합이다. 해결한 문제의 소요 시간은 대회 시작부터 그 문제의 첫 정답 제출까지 걸린 시간(분)에, 그 문제에 대해 이전에 틀린 제출마다 20분의 벌점을 더한 값이다. 풀지 못한 문제는 점수에 영향을 주지 않는다.

최적 전략의 한 가지 요소는 오답을 전혀 제출하지 않는 것이다. 그러면 벌점 시간을 신경 쓸 필요가 없으므로, 남은 결정은 문제를 어떤 순서로 제출할지뿐이다.

팀은 각 문제의 풀이에 필요한 시간을 정확히 추정할 수 있다고 가정한다. 세 명은 모두 같은 문제에 매달리는 대신 서로 다른 문제를 생각하며, 각자는 무한히 빠르게 타이핑하고, 생각하는 동안에는 터미널을 사용하지 않는다. 따라서 최대 세 문제가 동시에 진행될 수 있으며, 세 명이 같은 분에 각각 문제를 제출하는 것도 가능하다.

문제는 대회 300분 이내에 제출된 경우에만 해결한 것으로 인정된다. 가능한 한 많은 문제를 해결하고, 그중에서 가능한 한 좋은(가장 작은) 점수를 얻는 전략을 구하라. 같은 수의 문제를 같은 점수로 해결하는 전략이 여러 개라면, 사전순으로 가장 앞서는 제출 순서를 출력한다.

입력

첫 번째 줄에는 정수 $n$ ($0 < n < 100$)이 주어지며, 이는 데이터 집합의 개수(문제 묶음마다 하나)이다. 이어지는 $n$개의 줄이 각각 하나의 데이터 집합을 나타낸다. 각 줄은 정수 $k$ ($5 \le k \le 15$)로 시작하며, 이는 그 데이터 집합에 포함된 문제의 개수이다. 그 뒤에 $k$개의 정수가 이어지며, 각각은 $1$ 이상 $300$ 이하이고 각 문제를 푸는 데 필요한 추정 시간을 나타낸다. 문제는 주어진 순서대로 대문자 $A, B, C, \ldots$ 로 라벨링된다. 대회 시간은 정확히 $300$분이다.

출력

각 데이터 집합마다 한 줄을 출력한다. 그 줄에는 다음을 차례로 출력한다: Data set X: (여기서 $X$는 $1$부터 시작하는 데이터 집합 번호), 제출되는 순서대로 나열한 해결한 문제들의 라벨, 해결한 문제의 총 개수, 그리고 최종 벌점 점수. 한 줄의 모든 항목은 하나의 공백으로 구분된다.