ベクトルの外積って!?

これも長かったProblem102
ベクトルの概念を使用すればスカッと解けそうだったのだけど、そう簡単ではなかった。
いろいろ試行錯誤(調べるだけだけど)してみて分かったのは、

ベクトルの外積を使用することにより、問題とする点がベクトルの進行方向の右にあるのか
左にあるのかを判断することができるということ
(0ならベクトル上、0より大きければ左側、0より小さければ右側)

これの発展形でベクトルを辺とみなせば、その辺のすべてにおいて常に右側(時計回りで調べる場合)
もしくは左側(反対時計回りで調べる場合)に位置するならば、その点は多角形の内部にあることが分かる
(より正確には多角形、ではなく、凸多角形なのだけど、3角形は凸多角形なので今回は割愛)

なので、これを関数で実装できればパラメータを渡してカウントすればおk

ただ、この外積、基本的に3次元で使用するものみたいで、2次元で使用する例がなかなか見当たらなかった。
(要は、x,y,zで座標を与える際にz=0で扱えばいいのだけど)

プラス、座標軸からベクトルの外積を計算する手法がよく分からなかった。

ま、この辺の紆余曲折を経て、最終的に何とか答えは出た。