問題一覧 > 通常問題

No.743 Segments on a Polygon

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 82
作問者 : 37zigen / テスター : はむこ
8 ProblemId : 2063 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2018-10-06 00:17:32

問題文

M頂点の凸多角形があります。
凸多角形の頂点には時計回りに番号0,1,2,...,M1が割り振られています。
ここで、線分をN回追加します。
i回目に追加した線分は番号aiの頂点と番号biの頂点を結びます。
追加した線分同士がなす交点の数を数えてください。

ただし追加される線分は以前に追加された線分と端点を共有しないとします。
つまりijのときaiajかつbibjかつaibjです。
また、1つの交点がk本の線分からなるとき1つの交点として数えず、k(k1)/2個の交点として数えてください。

このとき、任意のM頂点の凸多角形について交点の数は一致することに注意してください。 より正確にはM,N,ai,biが与えられれば交点の数は定まることに注意してください。

入力

N M
a1 b1
a2 b2
a3 b3

aN bN

1N105
3M2×105
ai,biは整数
0ai,biM1
aiaj(ij)
bibj(ij)
aibj (i=jの時も成立)

出力

線分がなす交点の数を出力してください。
最後に改行してください。

サンプル

サンプル1
入力
3 6
2 3
1 0
4 5
出力
0

サンプル2
入力
9 18
11 6
14 2
0 17
7 13
4 12
1 16
10 3
8 15
5 9
出力
13

サンプル3
入力
6 12
9 11
3 10
4 6
1 5
0 7
2 8
出力
7

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。