비트스톡

주가와 초당 수익, 그리고 보유한 주식이 자식 주식을 반값으로 지원하는 숲 구조가 주어질 때, 초당 수익이 P에 도달하는 최소 시간을 구한다.

어려움8그리디트리동적 계획법이분 탐색아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

미르코는 주식을 사고파는 MMORPG 비트스톡에 푹 빠져 있다. 시장에는 정확히 NN가지 주식이 있고, 미르코는 아무 때나 원하는 주식을 원하는 만큼 살 수 있다. ii번 주식 한 주의 가격은 cic_i쿠나이고, 사는 순간부터 초당 gig_i쿠나를 벌어 준다. 주식은 실수 단위로도 살 수 있다. 다만 그 양은 양수여야 한다. 예를 들어 AA 주식을 0.70.7주 사면 그 주식은 다음 0.30.3초 동안 0.21gA0.21 g_A쿠나를 번다.

비트스톡의 특징은 어떤 주식이 다른 주식을 지원한다는 점이다. 지원받는 주식은 반값에 살 수 있다. AABBCC를 지원한다면, 가지고 있는 AA 주식 11주로 BB0.70.7주, CC0.30.3주 반값에 살 수 있다. 이렇게 쓴 AA 주식으로는 더 이상 다른 구매를 지원하지 못한다. 물론 그 주식은 계속 돈을 번다. 즉 가지고 있는 주식 11주는 자신이 지원하는 주식을 모두 합쳐 11주까지만 반값에 사게 해 준다. 반값에 산 주식도 똑같은 방식으로 자신이 지원하는 주식을 지원한다. 각 주식은 많아야 한 종류의 주식에게 지원받고, 직접이든 간접이든 자기 자신을 지원하지 않는다.

벌어들인 돈은 생기는 즉시 다시 주식을 사는 데 쓸 수 있다. 목표는 초당 PP쿠나의 수익을 가장 짧은 시간 안에 만드는 것이다. 미르코는 처음에 EE쿠나를 가지고 있고, 주식은 하나도 없다.

입력

첫째 줄에 주식의 종류 수 NN, 처음 가진 금액 EE, 목표 수익률 PP가 주어진다 (1N10001 \le N \le 1000, 1E,P1091 \le E, P \le 10^9).

다음 NN개 줄의 ii번째 줄에는 ii번 주식의 가격 cic_i, 초당 수익 gig_i, 그리고 ii번 주식을 지원하는 주식의 번호 pip_i가 주어진다 (1ci1091 \le c_i \le 10^9, 0gi1090 \le g_i \le 10^9, 0piN0 \le p_i \le N). pi=0p_i = 0ii번 주식을 지원하는 주식이 없다는 뜻이다. gig_i 중 적어도 하나는 양수다.

출력

초당 PP쿠나의 수익을 만드는 데 필요한 최소 시간을 초 단위로 출력한다. 값은 올림해서 정수로 적는다. 예를 들어 17.217.2초가 필요하면 1818을 출력한다. 처음 가진 돈만으로 목표를 바로 달성하면 00을 출력한다.

정확한 최소 시간이 00이거나 모든 정수와 10610^{-6} 이상 차이가 나도록 입력이 주어진다.