AOJ0012: A Point in a Triangle

もう1つやっていたので。

問題概要

3点a,b,cからなる三角形の中に点pが入っているか(線上は入っていない扱い)を求めよ。

A Point in a Triangle | Aizu Online Judge

解説

これも色々解き方ありそうですね。自分は「それぞれの単位ベクトルを用いて内積の大きさを比べる」とか考えたのですが、結局面積に。

もしpが三角形の中にあるなら面積がabc=pab+pbc+pcaとなります。線の上にあるなら右辺のどれかが0になるはずです。三角形の外にあるなら左辺<右辺です。

三角形の面積はベクトル使いましょう。S=|ad-bc|/2です。

https://github.com/HyogaGlacier/AOJ/blob/master/0012.c

感想

今回はスパコンやるかもしれないということでCを再び使い始めました。コンパイルオプションに-lmつけ忘れて死亡してました。