놀이공원 게임

n개의 게임 중 k개를 골라 순서를 정했을 때 최종 금액의 기댓값이 최대가 되는 값을 구해 출력한다.

보통7동적 계획법정렬확률아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

놀이공원에 게임 G1,G2,,GnG_1, G_2, \dots, G_n이 있다. 이 중에서 kk개를 골라 원하는 순서대로 한 번씩 플레이한다. 같은 게임을 두 번 플레이할 수는 없고, 어떤 kk개를 어떤 순서로 할지는 첫 게임을 시작하기 전에 모두 정해야 한다.

처음에 가진 돈은 x0x_0 오슐룹이다. 게임 GiG_i를 시작할 때 가진 돈이 xx 오슐룹이라고 하자. 이 게임을 이기면 돈이 x+Aix + A_i가 되고, 지면 xxLiL_i퍼센트를 잃어 x×(1Li/100)x \times (1 - L_i / 100)이 된다. 게임 GiG_i를 이길 확률은 PiP_i퍼센트이고, 각 게임의 승패는 서로 독립이다.

고른 kk개를 정해 둔 순서대로 모두 플레이한 뒤 손에 남는 돈의 기댓값이 가장 크도록 선택과 순서를 정하고, 그때의 기댓값을 구하는 문제다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 세 정수 nn, kk, x0x_0이 공백으로 구분되어 주어진다 (1kn1001 \le k \le n \le 100, 0x01060 \le x_0 \le 10^6). 이어지는 nn개 줄 중 ii번째 줄에는 게임 GiG_i를 나타내는 세 정수 AiA_i, LiL_i, PiP_i가 공백으로 구분되어 주어진다 (0Ai,Li,Pi1000 \le A_i, L_i, P_i \le 100).

입력의 마지막 줄에는 0 0 0이 주어지며, 이 줄은 테스트 케이스가 아니므로 처리하지 않는다.

출력

각 테스트 케이스마다 최종 금액의 기댓값이 가질 수 있는 최댓값을 소수점 아래 셋째 자리에서 반올림해 한 줄에 출력한다. 소수점 아래 둘째 자리까지 항상 두 자리를 모두 적는다.

정확히 중간인 값은 올린다. 예를 들어 1.0051.0051.01로 출력한다. 테스트 데이터의 정답은 반올림 경계에서 언제나 10410^{-4}보다 멀리 떨어져 있으므로, 배정밀도 실수로 계산해도 자릿수가 흔들리지 않는다.