atcoder#ARC082C. [ARC082E] ConvexScore
[ARC082E] ConvexScore
配点 : 点
問題文
二次元平面上に配置された 個の点 が与えられます。 点の部分集合 であって、凸多角形をなすものを考えます。 ここで点集合が凸多角形をなすとは、 頂点の集合が と一致するような正の面積の凸多角形が存在することとします。ただし、凸多角形の内角は全て 未満である必要があります。
例えば下図では、 として {}, {} などは認められますが、{}, {}, {}, {}, {} などは認められません。
に対し、 個の点のうち の凸包の内部と境界 (頂点も含む) に含まれる点の個数を とおき、 のスコアを、 と定義します。
凸多角形をなすような考えうる全ての に対してスコアを計算し、これらを足し合わせたものを求めてください。
ただし答えはとても大きくなりうるので、 で割った余りをかわりに求めてください。
制約
- なら または
- は整数
入力
入力は以下の形式で標準入力から与えられる。
出力
スコアの総和を で割った余りを出力せよ。
4
0 0
0 1
1 0
1 1
5
として三角形(をなす点集合)が つと四角形が つとれます。どれもスコアは となるので、答えは です。
5
0 0
0 1
0 2
0 3
1 1
11
スコア の三角形が つ、スコア の三角形がつ、スコア の三角形が つあるので、答えは です。
1
3141 2718
0
として考えられるものがないので、答えは です。