P6261 [ICPC 2019 WF] Traffic Blights
题目描述
Main 街坐落在一条东西向的直线上,上面有若干位置互异的红绿灯。每个红绿灯以某个固定周期在红绿之间循环。更具体地,它会先持续 $r$ 秒的红灯,再持续 $g$ 秒的绿灯,再持续 $r$ 秒的红灯...如此往复。对于不同的红绿灯,$r$ 和 $g$ 的值可能不同。在时刻 $0$,所有的红绿灯都恰好刚变为红灯。
假设此时有一辆“理想”汽车在前 $2019!$ 秒中的一个随机实数时刻神秘地出现在了 Main 街的最西端,向东以 $1~ \rm m/s$ 龟速行驶,直到遇到第一个红灯时停下,那么它有多大的概率通过所有红绿灯?如果它停下来了,那么它在每个红绿灯处停下的概率有多大?
输入格式
第一行一个整数 $n$($1\le n\le 500$) 表示红绿灯的数量。
接下来每行三个整数 $x,r,g$($1\le x \le 10^5$,$0\le r,g$ 且 $1\le r+g\le 100$), 描述一个位置在从西往东 $x$ 米处的,红灯持续时间为 $r$,绿灯持续时间为 $g$ 的红绿灯。
最西侧即 $x=0$ 处,保证 $x$ 严格递增。
输出格式
前 $n$ 行第 $i$ 行每行输出一个实数表示在第 $i$ 个红绿灯停下的概率。
第 $n + 1$ 行输出一个实数表示通过所有红绿灯的概率。
你需要保证绝对误差不超过 $10^{-6}$.
说明/提示
Source: ICPC 2019 World Finals.