各有権者が各障害物に視界を遮られない領域の境界は2本の直線で表現できる(**)。Bがいて、先ほどの2本の直線をすべての障害物に対して描いたとする。下の図でいうと、赤い4本の直線、青い4本の直線のことである。個)を作ることができる(平行の場合は交点がないのでさらに少ない)。)の考察から、この交点にX氏がいると仮定してもよい。各交点に対し最高何人から見えるかチェックすればよい(***)。最後にそのmaxを取る。有権者からある多角形の障害物のすべての頂点に直線を引き、多角形を貫通しているかどうか調べればよい。直線と直線の交点の計算。これが意外と書くのが大変。各交点から各有権者に線分を引き、ある多角形を貫通しているかどうかを調べればよい。Eコメント:すべて一から実装したのもあり、バグを各所に生んでしまってまるまる2時間かかってしまった。交点導出のデバッグで時間を取られた。直線同士の交点を計算するだけとはいえ、甘く見ては痛い目を見る。小さいので気にしなくてもよいと思われる。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。