200822: [AtCoder]ARC082 E - ConvexScore

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $700$ points

Problem Statement

You are given $N$ points $(x_i,y_i)$ located on a two-dimensional plane. Consider a subset $S$ of the $N$ points that forms a convex polygon. Here, we say a set of points $S$ forms a convex polygon when there exists a convex polygon with a positive area that has the same set of vertices as $S$. All the interior angles of the polygon must be strictly less than $180°$.

cddb0c267926c2add885ca153c47ad8a.png

For example, in the figure above, {$A,C,E$} and {$B,D,E$} form convex polygons; {$A,C,D,E$}, {$A,B,C,E$}, {$A,B,C$}, {$D,E$} and {} do not.

For a given set $S$, let $n$ be the number of the points among the $N$ points that are inside the convex hull of $S$ (including the boundary and vertices). Then, we will define the score of $S$ as $2^{n-|S|}$.

Compute the scores of all possible sets $S$ that form convex polygons, and find the sum of all those scores.

However, since the sum can be extremely large, print the sum modulo $998244353$.

Constraints

  • $1≤N≤200$
  • $0≤x_i,y_i<10^4 (1≤i≤N)$
  • If $i≠j$, $x_i≠x_j$ or $y_i≠y_j$.
  • $x_i$ and $y_i$ are integers.

Input

The input is given from Standard Input in the following format:

$N$
$x_1$ $y_1$
$x_2$ $y_2$
$:$
$x_N$ $y_N$

Output

Print the sum of all the scores modulo $998244353$.


Sample Input 1

4
0 0
0 1
1 0
1 1

Sample Output 1

5

We have five possible sets as $S$, four sets that form triangles and one set that forms a square. Each of them has a score of $2^0=1$, so the answer is $5$.


Sample Input 2

5
0 0
0 1
0 2
0 3
1 1

Sample Output 2

11

We have three "triangles" with a score of $1$ each, two "triangles" with a score of $2$ each, and one "triangle" with a score of $4$. Thus, the answer is $11$.


Sample Input 3

1
3141 2718

Sample Output 3

0

There are no possible set as $S$, so the answer is $0$.

Input

题意翻译

给定平面上 $N$ 个点的坐标 $x_i,y_i$。从这 $N$ 个点中选出一些可以形成凸包的点,构成点集 $S$ 。点集 $S$ 形成的凸包是指存在顶点的集合与 $S$中的点一致的正面积的凸多边形。但是,凸多边形的内角必须全部不足180°。 例如图中,点集 ${$ $A,C,E$ $}$, ${$ $B,D,E$ $}$ 即为可以构成凸包的集合,而 ${$ $A,C,D,E$ $}$, ${$ $A,B,C,E$ $}$, ${$ $A,B,C$ $}$, ${$ $D,E$ $}$, $\varnothing$ 都是不能构成凸包的点集。 对于选出来的集合 $S$,在 $N$ 个点中,将 $S$ 形成的凸包的内部和边上(包括顶点)包含的点的个数设为 $n$,将 $S$ 的贡献定义为$2^{n-|S|}$。 请计算 $N$ 个点能选出的所有集合 $S$ 能构成的凸包的贡献和。 但是,由于答案可能会变得非常大,所以请将贡献和对 $998244353$ 取模。

加入题单

算法标签: