012 - 夕暮れ
時間制限 2 秒 / メモリ制限 256 MB / 得点 11 / x 0 /
問題
AIZU国の夕暮れ時は、スマートフォンを西の空へ構えて立ち止まる観光客で賑わう。AIZU国は無数のビルが建ち並ぶ大都市であり、ビルの谷間が長く連なる西の空には、ビルのシルエットとそれらから漏れ出す太陽の光による絶景が広がる。
AIZU観光協会の若松氏によると、太陽を表す円が、その面積のちょうど半分だけ遮られているとき、格段の絶景になるという。
図のように、西の空を、地平線をx軸、太陽の中心の軌跡をy軸とするようなx-y平面で表し、太陽を半径Rの円、それぞれのビルのシルエットを長方形とする。
各ビルのシルエットの底辺はx軸上にあり、太陽は十分高い位置から地平線に対して垂直に沈んでいく。太陽はビルのシルエットあるいは地平線を上端とする地面に遮られ、やがて地平線の下へ消えてゆく。
課題
太陽の半径と各ビルのシルエットの情報が与えられたとき、太陽の面積のちょうど半分が遮られるような、最も高い太陽の高さ(中心のy座標)を求めるプログラムを作成せよ。
入力
N R x1 w1 h1 x2 w2 h2 . . . xN wN hN
1行目にビルの数N(0≦N≦100)と太陽を表す円の半径R(1≦R≦100)が与えられる。続くN行にi番目のビルのシルエットの左下角のx座標xi(-100≦xi≦100,xi<xi+1)、幅wi(1≦wi≦100)、高さhi(1≦hi≦100)が与えられる。入力はすべて整数で与えられる。
入力は以下の条件を満たす。
- ビルのシルエットが重なることはない(xi+ wi≦xi+1)。
- 2つの隣接するビルのシルエットの高さの差は、Rを超えない。
- ビルの左側(x軸の負の方向)または右側(x軸の正の方向)に隣接するビルがない場合、その高さはRを超えない。
時間制限
入力に対して、実行時間が2秒を超えてはならない。
出力
太陽の高さ(円の中心のy座標)を1行に出力する。ただし、誤差がプラスマイナス10-6を超えてはならない。この条件を満たせば小数点以下何桁表示してもよい。
入出力例
入力例1
0 2
出力例1
0.00000000
入力例2
3 2 -2 1 1 -1 1 2 0 2 1
出力例2
1.25065774