현금 교환
시간 제한1초메모리 제한256 MB
두 바우처의 미래 일별 가격과 고정된 A 대 B 매수 비율이 주어질 때, S달러로 N일 동안 사고팔아 얻을 수 있는 최대 현금을 구한다.
문제
어린 Y는 최근 환전소에서 일하고 있다. 환전소에서는 기념 상품권 A(이하 상품권 A)와 기념 상품권 B(이하 상품권 B) 두 종류의 상품권만 교환할 수 있다. 상품권을 보유한 모든 고객은 각자의 계좌를 가지고 있다. 고객이 보유한 상품권의 수량은 실수일 수 있다.
시장의 물결에 따라 매일 오르내리는 두 종류의 상품권은 각각 특정 시점에 고유한 가치를 지니며, 상품권 한 단위는 그날 일정 금액의 현금으로 교환할 수 있다. K일째에 상품권 A와 상품권 B의 가치는 각각 AK와 BK(달러/단위 상품권)이다.
고객의 편의를 위해 환전소에서는 매우 간편한 거래 시스템인 비율 교환 방식을 제공한다. 비율 교환 방식에는 두 가지 측면이 있다.
- 상품권 판매: 고객은 [0, 100] 범위의 실수
OP를 판매 비율로 제시한다. 이는 상품권 A의OP%와 상품권 B의OP%를 그 시점의 환율로 현금으로 교환한다는 의미이다. - 상품권 구매: 고객은
IP달러를 지불하고, 환전소는 이 돈을 받아 상품권으로 교환해 준다. 또한K일째 상품권 A와 상품권 B의 수량 비율은 정확히RateK이다.
예를 들어, 다음 3일 동안 AK, BK, RateK의 값이 다음과 같이 변한다고 하자.
어느 날 고객이 100달러를 가지고 있고 상품권은 하나도 없다고 하자. 고객은 다음과 같은 거래를 수행한다.
하루에 여러 번 거래할 수 있다는 점에 유의하자.
어린 Y는 경제 관념이 매우 강한 직원이다. 비교적 오랜 기간 운영과 시장 추정을 거친 후, 그는 미래 N일 동안 상품권 A와 B의 가치 및 비율을 이미 알고 있다. 그는 S달러로 시작하여 N일 후에 얻을 수 있는 최대 현금(달러)이 얼마인지 계산하려고 한다.
입력
첫 번째 줄에는 두 양의 정수 N과 S가 주어지며, 각각 어린 Y가 예측할 수 있는 일수와 시작 현금 금액을 나타낸다.
다음 N개의 줄에서 K번째 줄에는 세 개의 실수 AK, BK, RateK가 주어진다.
출력
N일째의 모든 작업이 끝난 후 얻을 수 있는 최대 현금(달러)을 나타내는 실수 MaxProfit을 소수점 셋째 자리까지 정확하게 출력한다. 정답과의 절대 오차가 0.001 이하이면 정답으로 인정된다.
제한
N≤ 100 000- 0 <
AK≤ 10 - 0 <
BK≤ 10 - 0 <
RateK≤ 100 MaxProfit≤ 109