시험 공부 시간 배분

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

시험 전에 쓸 수 있는 공부 시간은 HH시간으로 정해져 있다. 평점을 최대로 올리려면 이 시간을 과목마다 얼마씩 나눠 쓸지 정해야 한다. 한 과목에서 A를 받는 데 드는 시간이 아주 크고 나머지 과목은 조금만 공부해도 A가 나온다면, 그 한 과목을 C로 두고 나머지에서 A를 챙기는 쪽이 평점에 유리하다.

과목마다 학점별로 필요한 공부 시간이 주어진다. 어떤 과목에 그 학점이 요구하는 시간 이상을 쓰면 그 학점을 받는다. D에 필요한 시간조차 채우지 못하면 F를 받는다. 학점의 점수는 A가 4.0, A-가 3.7, B+가 3.3, B가 3.0, B-가 2.7, C+가 2.3, C가 2.0, C-가 1.7, D+가 1.3, D가 1.0, F가 0.0이다. 평점은 nn개 과목에서 받은 점수의 평균이다.

HH시간을 과목에 나눠 배정해서 얻을 수 있는 평점의 최댓값을 구하라. 한 과목에 배정한 시간은 다른 과목에 쓸 수 없고, 시간이 남아도 된다.

입력

첫 줄에 데이터 집합의 개수 KK가 주어진다. (1K1001 \le K \le 100)

각 데이터 집합의 첫 줄에는 수강 과목 수 nn과 공부에 쓸 수 있는 시간 HH가 공백으로 구분되어 주어진다. (1n101 \le n \le 10, 0H1000 \le H \le 100)

이어지는 nn개 줄에는 각각 정수 10개가 주어진다. ii번째 줄의 정수는 순서대로 ii번 과목에서 A, A-, B+, B, B-, C+, C, C-, D+, D를 받는 데 필요한 공부 시간이다. 한 줄에 있는 정수 10개는 비증가 순서이고, 모두 0 이상 100 이하이다.

출력

각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. xx는 데이터 집합의 번호이고 1부터 시작한다. 그다음 줄에 얻을 수 있는 평점의 최댓값을 소수점 아래 둘째 자리까지 출력한다.

평점은 소수점 아래 셋째 자리에서 반올림한다. 버리는 부분이 정확히 0.0050.005이면 큰 쪽으로 올린다. 자릿수가 모자라면 0을 채워 소수점 아래를 항상 두 자리로 쓴다.

각 데이터 집합의 출력 뒤에 빈 줄을 하나 출력한다.