만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순열

시간 제한1초메모리 제한512 MB

요약
점 N개를 한 줄로 나열하는 순열 중, 네 번째 점부터 이전 점과 교차하지 않는 선분을 정확히 세 개씩 그리는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
기하, 동적 계획법
정답자
아직 제출이 없습니다

문제

베시는 2차원 격자 위에 좋아하는 서로 다른 점 NN개를 가지고 있다(3≤N≤403\le N\le 40). 어느 세 점도 한 직선 위에 있지 않다. 각 1≤i≤N1\le i\le N에 대해 ii번째 점은 두 정수 xix_i, yiy_i로 나타낸다(0≤xi,yi≤1040\le x_i,y_i\le 10^4).

베시는 다음 방법으로 점들 사이에 선분을 긋는다.

  1. NN개 점의 순열 p1,p2,…,pNp_1,p_2,\ldots,p_N을 고른다.
  2. p1p_1과 p2p_2, p2p_2와 p3p_3, p3p_3과 p1p_1 사이에 선분을 긋는다.
  3. 그다음 ii가 4부터 NN까지 순서대로, pip_i에서 ii보다 작은 모든 jj에 대해 pjp_j까지 선분을 긋는다. 단, 이미 그은 선분과 (끝점을 제외하고) 교차하지 않는 경우에만 긋는다.

베시는 각 ii마다 새 선분을 정확히 3개씩 그었다는 사실을 확인했다. 이 성질을 만족하도록 1단계에서 베시가 고를 수 있었던 순열의 개수를 구하라. 답은 109+710^9+7로 나눈 나머지로 출력한다.

입력

첫째 줄에 NN이 주어진다.

이어서 NN개의 줄에 각각 공백으로 구분된 두 정수 xix_i와 yiy_i가 주어진다.

출력

순열의 개수를 109+710^9+7로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    4
    0 0
    0 4
    1 1
    1 2
    
    예상 출력
    0
    
  2. 예제 2

    입력
    4
    0 0
    0 4
    4 0
    1 1
    
    예상 출력
    24
    
  3. 예제 3

    입력
    5
    0 0
    0 4
    4 0
    1 1
    1 2
    
    예상 출력
    96