AOJ 1194 - バンパイア
バンパイア
提出コード
初めての幾何問題です。
まずはのときの、x座標がの部分の太陽の高さを求めます。
ビルの左右の端が小数になることはないので、は整数の座標の部分のみ求めます。太陽の高さはの右側が単調減少、左側は単調増加となっているからです。
上の図でいうと、が求めたい部分になります。
三平方の定理を利用して、
となります。
を、からまで動かして先に計算しておきます。
あとは、のときのビルの高さをとして、の最小値を求めると答えになります。
ビルは、[,)もしくは(,]として入力しないと、小数点の座標部分がうまく記録されないので注意しましょう。
そしてその場合、x座標がの太陽の高さとビルの高さを利用して答えを求めるとき、より左側のビルの高さと、より右側のビルの高さの、2つを調べる必要があるので注意しましょう(端だけは1つになります)。