2차원 평면 위에 $n$개의 점 $p_i$가 있으며, 점 $p_i$는 좌표 $(x_i, y_i)$에 위치해 있습니다. 어떤 두 점도 같은 위치에 있지 않으며, 어떤 세 점도 한 직선 위에 있지 않음이 보장됩니다.
주어진 점들의 집합에서 세 점을 고르는 방법 중, 이 세 점을 포함하는 임의의 부분집합의 볼록 껍질(convex hull)이 항상 삼각형이 되도록 하는 방법의 수를 구하세요.
입력
첫 번째 줄에 점의 개수를 나타내는 정수 $n$이 주어집니다. 다음 $n$개의 줄에는 각각 점 $p_i$의 좌표를 나타내는 두 정수 $x_i$와 $y_i$가 주어집니다.
출력
주어진 점들의 집합에서 세 점을 고르는 방법 중, 이 세 점을 포함하는 임의의 부분집합의 볼록 껍질이 삼각형이 되도록 하는 방법의 수를 나타내는 정수 하나를 출력합니다.
제한
$3 \le n \le 2000$, $|x_i|, |y_i| \le 10^9$, 어떤 두 점도 같은 위치에 있지 않으며, 어떤 세 점도 한 직선 위에 있지 않습니다.
예제
입력 1
7 2 7 0 9 -2 -2 9 4 3 3 -8 -10 -2 -3
출력 1
2
입력 2
4 -1 -1 1 -1 0 1 0 0
출력 2
4
입력 3
7 -50 -33 50 -31 -93 98 -47 -59 16 -35 79 -25 -75 41
출력 3
15
노트
첫 번째 예제의 점들은 아래 그림과 같이 배치되어 있습니다.
첫 번째 예제에서는 세 점을 고르는 다음 두 가지 방법이 조건을 만족합니다: $\{p_1, p_4, p_6\}$, $\{p_2, p_4, p_6\}$.
두 번째 예제의 점들은 아래 그림과 같이 배치되어 있습니다.
두 번째 예제에서는 세 점을 고르는 다음 네 가지 방법이 조건을 만족합니다: $\{p_1, p_2, p_3\}$, $\{p_1, p_2, p_4\}$, $\{p_1, p_3, p_4\}$, $\{p_2, p_3, p_4\}$.