AtCoder Beginner Contest 033 D : 三角形の分類
当初の方針
幾何は苦手意識・・・。
サンプルみたいに、直角と鋭角の数をカウントして、
全体から引けばいい?(うまくだまされました)
グリッド上に配置されるから、直角になるには、
x座標かy座標かが一緒になる?
(大嘘。(0,0),(1,1),(2,0)がある)
ソートしてあげれば良いことがありそう。
x座標を基準にソートか?(違う)
諦め
解法を見て
角度をもとにソートする。なるほど。
鋭角は三角形の角度の中で必ず一つ存在するが、
鈍角は、鈍角三角形の中で1つしか存在しない。
なのでこれを利用して鈍角の個数をカウントしていけばいい、
ということだろう。
その途中道で、直角三角形もカウント。
しゃくとり法だとバグらせそうなので、2分探索で実装。
角度を求める関数を自作する → 上手く求まらないケースがあるようなのでatan2に変更
(そんな関数すら作れないのも問題ですが・・・)
サンプルが合う。提出 → WA。なんでじゃ~~~
いろいろな人のソースを見ながらやってみるが、
一向にWAが取れない。
注意深く見てみれば、同じかどうかの判定を自分は1e-6でやっていて、
他の人は1e-9だった。
1e-9に訂正して提出 → AC。ふいー。
Submission #941634 - AtCoder Beginner Contest 033 | AtCoder
こういうのは、最大ケースみたいなので、チェックしてあげる必要があるなあ。
気を付けないと。