No.622 点と三角柱の内外判定

レベル : / 実行時間制限 : 1ケース 1.500秒 / メモリ制限 : 256 MB / 通常問題
タグ : / 解いたユーザー数 27
作問者 : cielciel / テスター : はむこはむこ

1 ProblemId : 1786 / 出題時の順位表

問題文

3次元上の4点A,B,C,Dが与えられる。点Dが、三角形ABCを、三角形ABCが存在する平面(平面ABC)と垂直な方向に伸ばした三角柱の内部に存在するかどうか判定せよ。勿論、平面ABCがXY平面と平行であるとは限らない。
なお、「点Dを平面ABCに投影した点」と三角形ABCのいずれかの辺までの距離は0.01以上とします。

入力

$x_1$ $y_1$ $z_1$
$x_2$ $y_2$ $z_2$
$x_3$ $y_3$ $z_3$
$x_4$ $y_4$ $z_4$

$x_i,y_i,z_i: i(1 \le i \le 4)$点目の$x$座標,$y$座標,$z$座標 (整数)
$-10^{6} \le x_i,y_i,z_i \le 10^6$

出力

三角柱の内部に存在するなら YES を、存在しないなら NO を1行に出力せよ。
それ以外は出力してはならない。

サンプル

サンプル1
入力
0 0 0
2 0 0
1 2 0
1 1 1
出力
YES

このケースでは三角形ABCはXY平面と平行なので、単に点DをXY平面に射影して、点と三角形の内外判定を行うとよいでしょう。

サンプル2
入力
3 0 0
0 3 0
0 0 3
1 1 9
出力
NO

このケースでは三角形ABCはXY平面と平行ではありません。

提出ページヘ
下のフォームでの入力は、テキストボックスにフォーカスがない場合は、(Onにしている場合)ショートカットキー・スマートサブミットの影響を受けるので、必要なら提出ページに遷移してください。

言語
問題によって提出できない言語があります。参考
ソースコード
ソースコードのテキストボックスに文字がある場合はファイルは無視されます。
テキストボックスで提出するとCR(\r)が除去されますが、ファイルで提出すると除去されません。