Problem J
レモネードの交換
Languages
en
ja
昼休みが始まった!お母さんから$1$リットルのピンクレモネードを渡されているけど、あなたはピンクレモネードが好きではなく、あなたが好きなのはブルーレモネードだ。
幸い、クラスの他の生徒が交換したがっている。彼らは、それぞれの母親から無限の量のレモネードをもらっているので、彼らの好きなレモネードを交換レートに従って好きなだけ交換することができる。生徒は教室内に一列に座っており、あなたは列に沿ってそれぞれの生徒と$1$回ずつしか交換することができない。すなわち、列を戻ることはできない! もちろん、あなたは最終的にできるだけ多くのブルーレモネードを手に入れたいが、あなたが欲しいのは$10$リットルだけなので、それより多くのブルーレモネードを手に入れた場合、余りは捨ててしまう(そして、$10$リットルだけ保持する)。
幸い、各生徒の提示する交換レートは事前に知ることができる。あなたのタスクは、できるだけ多くのブルーレモネードを手に入れることだ。
入力
入力は以下の内容を含む。
-
先頭行は $0\leq N \leq 10^5$の整数で、クラスのあなた以外の生徒数を表す。
-
それ以降の $N$ 行は $O, W$ の $2$ つの文字列と $0.5 < R < 2$ の浮動小数点数で、提供するレモネードの名前、要求するレモネードの名前、交換レートを表す。すなわち、レモネード $W$ を$1$リットル提供するごとに、レモネード $O$ を $R$ リットル受け取る。交換レートは小数点以下最大$7$桁で与えられる。
文字列は最大$10$文字のアルファベットで与えられる。
出力
出力は単一行で、単一の浮動小数点数 $M$を含む。これは、ブルーレモネードを手に入れられる最大量(リットル単位)を示す。$10$ リットルより多く手に入れられる場合には、$M$ は $10$. になる。$M$ の精度は $10^{-6}$ の桁まで含める必要がある。
サンプル入力 1 | サンプル出力 1 |
---|---|
3 blue pink 1.0 red pink 1.5 blue red 1.0 |
1.500000000000000 |
サンプル入力 2 | サンプル出力 2 |
---|---|
2 blue red 1.0 red pink 1.5 |
0.000000000000000 |
サンプル入力 3 | サンプル出力 3 |
---|---|
4 orange pink 1.9 yellow orange 1.9 green yellow 1.9 blue green 1.9 |
10.000000000000000 |
サンプル入力 4 | サンプル出力 4 |
---|---|
8 red pink 1.9 orange red 1.9 yellow orange 1.9 green yellow 1.9 indigo green 0.6 violet indigo 0.6 purple violet 0.6 blue purple 0.6 |
1.688960160000000 |