아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

시험 공부 기간

면접 대비

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

요약
각 과목이 10개 등급 구간의 필요 학습 시간을 가질 때, H시간을 나누어 평균 평점을 최대로 만드는 값을 소수 둘째 자리로 반올림해 구한다.
난이도

보통10점 중 5점

유형
동적 계획법, 배열, 구현, 정렬
정답자
아직 제출이 없습니다

문제

기말고사를 준비할 수 있도록 학교에서 제한된 공부 기간을 준다. 공부할 시간이 부족하기 때문에, 평점(GPA) 을 최대로 만들려면 이 시간을 과목들에 잘 나누어 배분해야 한다.

각 과목에는 여러 학점이 있고, 학점마다 받기 위해 필요한 최소 공부 시간이 정해져 있다. 한 과목에 더 많은 시간을 투자하면 그 과목의 학점이 올라간다. 때로는 부담이 큰 한 과목에서 낮은 학점을 감수하고, 대신 다른 여러 과목에서 높은 학점을 확보하는 편이 유리할 수 있다.

사용할 수 있는 총 공부 시간과, 각 과목에서 학점별로 필요한 시간이 주어질 때, 얻을 수 있는 최대 평점을 구하라.

평점은 nn개 과목의 학점 점수의 평균이다:

GPA=1n∑i=1npi\text{GPA} = \frac{1}{n}\sum_{i=1}^{n} p_i

여기서 pip_i는 ii번째 과목에서 받은 학점의 점수이다.

입력

첫 줄에 데이터 집합의 개수 K≥1K \ge 1 이 주어진다. 각 데이터 집합의 형식은 다음과 같다.

  • 첫 줄에 두 정수 nn과 HH가 주어진다. nn은 수강 과목 수(1≤n≤101 \le n \le 10), HH는 사용할 수 있는 공부 시간(0≤H≤1000 \le H \le 100)이다.
  • 이어서 nn개의 줄에 각각 10개의 정수가 주어진다. ii번째 줄의 정수들은 순서대로, ii번째 과목에서 각 학점을 받기 위해 필요한 공부 시간을 나타낸다.
학점AA-B+BB-C+CC-D+D
점수4.03.73.33.02.72.32.01.71.31.0

각 줄의 10개 정수는 증가하지 않는 순서로 주어진다(A를 받는 데 필요한 시간이 가장 크다). 어떤 학점에 필요한 시간 이상을 그 과목에 투자하면 그 학점을 받으며, 항상 얻을 수 있는 가장 높은 학점을 받는다. D를 받기에도 부족하게 공부하면 그 과목의 학점은 F(0.0점)가 된다.

출력

각 데이터 집합에 대해 먼저 Data Set x: 를 한 줄에 출력한다. 여기서 xx는 데이터 집합의 번호(1부터 시작)이다. 그다음, HH시간의 공부 시간을 과목들에 나누어 얻을 수 있는 최대 평점을 소수점 둘째 자리까지 반올림하여 출력한다(경계값은 올림, round half up).

예제3

  1. 예제 1

    입력
    1
    3 60
    40 37 35 33 30 26 20 10 5 1
    10 10 10 10 10 10 10 10 10 1
    24 23 22 21 20 20 20 20 20 20
    
    예상 출력
    Data Set 1:
    3.43
    
  2. 예제 2

    입력
    1
    1 0
    5 5 5 5 5 5 5 5 5 5
    
    예상 출력
    Data Set 1:
    0.00
    
  3. 예제 3

    입력
    1
    2 100
    10 9 8 7 6 5 4 3 2 1
    10 9 8 7 6 5 4 3 2 1
    
    예상 출력
    Data Set 1:
    4.00