Cash Exchange
Time limit1sMemory limit256 MB
Given future daily prices of two vouchers and a fixed A-to-B buy ratio, find the most cash obtainable from S dollars after N days of buying and selling.
- Level
Medium7 of 10
- Topics
- Dynamic programming, Math, Greedy, Implementation
- Solved
- No attempts yet
Problem
Little Y has recently been working at a currency exchange center. The currency exchange center only offers two types of vouchers to be exchanged: commemorative voucher A (henceforth known as voucher A) and commemorative voucher B (henceforth known as voucher B). All voucher-holding customers possess their very own account. The quantity of vouchers a customer has may be a real number.
Rising and falling daily with the waves of the market, the two types of vouchers each has their own values at any given time, and each unit of a voucher can be traded that day for some amount of cash. We note that on day K, the values of voucher A and voucher B are respectively AK and BK (dollars/unit voucher).
To make it more convenient for customers, the exchange center offers a very easy system to make transactions: the ratio exchange method. There are two different aspects to the ratio exchange method:
- Selling vouchers: the customer provides a real number
OPin the range [0, 100] as the selling ratio. This means thatOP% of voucher A andOP% of voucher B are exchanged for cash with the rate at that point in time. - Buying vouchers: the customer pays
IPdollars, and the exchange center takes this money to exchange it for vouchers. Furthermore, the ratio between the amount of voucher A and voucher B on dayKjust happens to beRateK.
For example, let's assume for the next 3 three days the following changes in the values of AK, BK, and RateK:
Let's say that on one day, a customer has 100 dollars but no vouchers of any kind. The customer carry out the following transactions:
Note that there may be multiple transactions on a single day.
Little Y is a very economically-minded worker. After a relatively long time conducting operations and market estimates, he already knows within the future N days what the values of vouchers A and B, as well as rate will be. He wishes to calculate, if one starts with S dollars, what is the maximum amount of cash (in dollars) that can be obtained after N days.
Input
The first line contains two positive integers N and S, representing the number of days that little Y's can foresee and the starting amount of cash respectively.
Within the next N lines, the K-th line contains three real numbers AK, BK, and RateK.
Output
Output a single real number MaxProfit, indicating the maximum amount of cash in dollars that can be obtained after all operations on the N-th day has finished, accurate to 3 decimal places. Your answer will be considered correct if its absolute difference with the correct answer is no larger than 0.001.
Constraints
N≤ 100 000- 0 <
AK≤ 10 - 0 <
BK≤ 10 - 0 <
RateK≤ 100 MaxProfit≤ 109