#P1860. Currency Exchange

    ID: 861 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>难度入门图结构SPFANortheastern Europe 2001Northern Subregion

Currency Exchange

描述
我们城市中有多个货币兑换点。假设每个兑换点专门兑换两种特定货币,并且只进行这两种货币的兑换操作。可能存在多个兑换点专门兑换同一对货币。每个兑换点有自己的汇率,将货币AA兑换为货币BB的汇率是指用11单位AA能兑换多少单位BB。此外,每个兑换点还会收取一定的手续费,手续费在兑换时从源货币中扣除。

例如,如果你想在某个兑换点将100100美元(USD)兑换为俄罗斯卢布(RUR),该点的汇率是29.7529.75,手续费是0.390.39,那么你将得到(1000.39)×29.75=2963.3975(100 - 0.39) \times 29.75 = 2963.3975卢布。

已知城市中有NN种不同的货币,编号为11NN的整数。每个兑换点可以用66个数字描述:整数AABB表示兑换的两种货币,实数RABR_{AB}CABC_{AB}RBAR_{BA}CBAC_{BA}分别表示从AA兑换到BB的汇率和手续费,以及从BB兑换到AA的汇率和手续费。

Nick手上有一些货币SS,他想知道是否可以通过一系列兑换操作最终增加他的本金(最终货币仍为SS)。在操作过程中,他的货币金额必须始终为非负数。

输入
第一行包含四个数字:NN(货币种类数)、MM(兑换点数)、SS(Nick持有的货币编号)和VV(持有的货币数量)。接下来的MM行每行包含66个数字,描述一个兑换点,顺序为AABBRABR_{AB}CABC_{AB}RBAR_{BA}CBAC_{BA}。数字之间由一个或多个空格分隔。
1SN1001 \leq S \leq N \leq 100
1M1001 \leq M \leq 100
VV为实数,0V1030 \leq V \leq 10^3
汇率和手续费为实数,最多保留两位小数,102rate10210^{-2} \leq \text{rate} \leq 10^20commission1020 \leq \text{commission} \leq 10^2

假设在任意简单的兑换操作序列(即同一兑换点最多使用一次)中,本金在操作结束时的数值与初始时的比值不超过10410^4

输出
如果Nick能增加他的本金,输出YES,否则输出NO

输入数据 1

3 2 1 20.0
1 2 1.00 1.00 1.00 1.00
2 3 1.10 1.00 1.10 1.00

输出数据 1

YES

来源
Northeastern Europe 20012001, Northern Subregion