英語が読みやすかった。
色んな速さの動く歩道が(被らない場所に)あって、何も無い区間もあって、動く歩道or普通の歩道を歩いたり走ったりして、どこで走れば効率いいの?的な問題。
普通の歩道は速さ0で動く歩道として問題無い。
明らかに遅い所で走るのが得策。
あとはなんか適当にやってやるだけ。
x,s,r,t,n=getia res = 0 ws = [] n.times do b,e,w = getia ws.push [w,e-b.to_f] x -= e-b.to_f end ws.push [0,x] ws.sort_by!{|a|a[0]} res = 0 ws.map! do |w| speed = w[0] length = w[1] if length / (speed + r) <= t t -= length / (speed + r) res += length / (speed + r) elsif t != 0 length -= t * (speed + r) res += t res += length / (speed+s).to_f t = 0 else res += length / (speed+s).to_f end end res
解法はぱっと思い付いたのに、e-b+1とかしてたり、走ってる時の速度がr+wだと勘違いしたりして、かなり手間取ってしまった。
to_fの場所がまちまちで怖いし、幾つかもっと綺麗に書けそうな場所があるけど、まぁACしたのでいいか。