AtCoder AGC 039 D - Incenters (1000点) 解説
問題
問題文は本家サイトにあります:AtCoder AGC 039 D
問題概要
3以上の整数
これら
制約
入力はすべて整数
解説
本家サイトに解説がある(PDF) ので、ここでは、解説の解説をします。アルゴリズムはあまり関係なくて、ほとんど数学の問題です。
「3点から内接円の中心の座標を求める」というのがすでに難しいですが、3点の情報を使ってうまく表さないと計算が終わりません。
さて、問題文にある
さて、では、内接円をどう考えていけばいいかを見ていきます。内接円とは、三角形の内側で接する円です。次のように、円周上の3点 A, B, C を結んで三角形を作り、内接円をかいてみます。
内側の円が内接円で、点 I が内接円の中心(内心といいます)です。内接円の性質はいくつかあります。一つは、内心は、それぞれの角の二等分線上にある、ということです。各頂点を I と結んでみます。
どうしてそれぞれの角の二等分線上にあるかは、【標準】三角比と内接円の上側にある図を参考にしてみてください。接点と頂点と内心を結んでできる三角形が合同であることを利用するとわかります。
3点 A, B, C が同一円周上の円であることを利用して、円周角の定理を使います。同じ長さの弧に対する円周角は等しく、逆も成り立ちます。なので、 AI と弧 BC との交点を
さらに、
弧
これは、
だいぶ長かったですね。しかし残念ながらこれはまだ本家サイトの解説の2行目に来ただけです。まだ1/3くらいしか終わっていません。
さて、今わかったのは、三角形 ABC の内心の座標を求めるには、各弧の中心を結んでできる三角形
外心というのは、外接円の中心のことです。外接円とは三角形の外で接する円のことです。上の図では、三角形 ABC の外心は原点です。原点を中心とする円周上の点をとる、ということは、その円周上の3点から作った三角形の外心は、自動的に原点になります。わかりやすいですね。また、三角形
次に、重心です。これは、頂点と対辺の中心とを結んだ直線(中線といいます)を3本引いたときにできる交点のことです。重心は、中線を
この外心と重心を使って、垂心を求めるには次のように行います。一般的な話をするので、先ほどとは別の名前を使いましょう。三角形 PQR に対して、この外心を O、垂心を H としましょう。
外心 O から辺 QR に垂線をおろし、交点を M とします。このとき、PH も QR とは垂直なので、 OM と PH は平行です。 PM と OH の交点を G とすると、三角形 GMO と三角形 GPH が相似であることがわかります。
次に、 OM と PH の長さを調べるために、別の角度から図形を見てみます。 R を通り QR に垂直な直線と OQ との交点を S とおきます。このとき、三角形 QOM と三角形 QSR は相似で、 M は QR の中点なので、 SR は OM の2倍になります。
また、 SQ は直径となるので、 SP と PQ は垂直に交わります(直径に対する円周角は90度だから)。 HR と PQ も垂直に交わるため、 PS と HR は平行です。また、 PH と OM, OM と SR も平行だから、 PH と SR も平行です。
以上から、四角形 PHRS は平行四辺形だから、
以上から、三角形 GMO と三角形 GPH の相似比は
まとめると、三角形 PQR の外心 O, 重心 G, 垂心 H は、この順番に一直線上にあり、
厳密には、 O が QR 上にあるときはどうするんだとか、他のケースも考えないといけませんが、このオイラー線のことが成り立つとして、問題に戻りましょう。このオイラー線のことを利用すれば何が言えるかを確認します。
円周上の3点 A, B, C をとって、三角形 ABC の内心を考えていたのでした。弧 BC, CA, AB の中点をそれぞれ
三角形
さて、あとは足すだけですが、足し方も考えなくてはいけません。各三角形 ABC ごとに、対応する三角形
しかし、
三角形のもう一つの頂点が上のような位置にあったとき、つまり、
一方、次のような位置関係のときもあり得ます。
これ以外で