No.033 D

ひとつの三角形に鈍角または直角が2つあることや鈍角と直角があることはないので, 鈍角と直角の数を数えればいい.

鈍角と直角の数え方であるが, まず1点 を固定し, を原点としたときの残りの点 の回転角を求め, ソートしておく. たいていの言語には atan2 があると思われる.

そして, ごとに と直角または鈍角となる点の範囲を二分探索で求める. 精度の問題があるので, 直角より少し広め ( 程度) に探索し, 境界付近は差分が微小値以下かどうかで直角かどうかを確認する.