시험 공부 시간 배분

볼록성을 띠는 이차함수 성적 함수들에 대해 T시간을 배분해 평균 성적을 최대화하는 문제로, 시간이 연속적이고 반올림까지 요구한다.

어려움8수학그리디이분 탐색구현아직 제출이 없습니다시간 제한3초메모리 제한512 MB

문제

기말고사가 코앞이다. 프로그래밍 대회에 시간을 쏟느라 공부는 거의 못 했고, 공부할 과목은 NN개인데 쓸 수 있는 시간은 정해져 있다. NN개 과목의 평균 점수가 최대가 되도록 과목마다 공부 시간을 정해야 한다.

쓸 수 있는 시간은 모두 합쳐 TT시간이다. 과목 iitt시간 공부하면 그 과목에서 받는 점수는 fi(t)=ait2+bit+cif_i(t) = a_i t^2 + b_i t + c_i이고, 모든 과목이 다음 네 조건을 만족한다.

  • fi(0)0f_i(0) \ge 0
  • fi(T)100f_i(T) \le 100
  • ai<0a_i < 0
  • fi(t)f_i(t)는 구간 [0,T][0, T]에서 감소하지 않는다.

공부 시간은 정수 시간이 아니어도 되고, 한 시간을 쪼개 배분해도 된다. 과목에 배분한 시간의 합은 TT시간을 넘을 수 없다. NN개 과목의 평균 점수가 최대일 때 그 값을 구하라.

입력

첫째 줄에 과목 수 NN과 전체 공부 시간 TT가 공백을 사이에 두고 주어진다. (1N101 \le N \le 10, 1T2401 \le T \le 240, 둘 다 정수)

다음 NN개 줄에 과목 iiaia_i, bib_i, cic_i가 공백을 사이에 두고 주어진다. 세 값은 소수점 아래 넷째 자리까지 주어지는 실수이고, 절댓값은 100 이하이다.

출력

얻을 수 있는 최대 평균 점수를 한 줄에 출력한다. 소수점 아래 일곱째 자리에서 반올림해 소수점 아래 여섯째 자리까지 적고, 자리가 비면 0을 채워 항상 여섯 자리를 출력한다.