만드는 중입니다

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

톱니바퀴 장치 구성

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

요약
볼록 껍질의 꼭짓점 색이 둘레를 따라 번갈아 나오도록 톱니 4개 이상을 고르는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

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

문제

그리고리는 드론과 기하학 개발을 좋아하는 엔지니어다. 대부분의 문제는 혼자 풀지만, 오늘은 그의 능력만으로는 풀 수 없는 문제를 마주했다. 당신은 그의 가장 든든한 조력자로서 그를 도와야 한다.

직교 좌표평면 위에 톱니바퀴 nn개가 있다. ii번째 톱니바퀴는 (xi,yi)(x_i, y_i)에 있고 색 cic_i를 가진다. cic_i가 b이면 검은색, w이면 흰색이다. 세 톱니바퀴가 한 직선 위에 놓이는 경우는 없다.

그리고리는 톱니바퀴 44개 이상으로 이루어진 부분집합 SS를 고른다. 그다음 톱니바퀴 둘레에 사슬로 된 고리를 둔다. 이 고리는 두 조건을 만족한다. SS의 모든 톱니바퀴는 고리에 닿거나 고리 안쪽에 있다. 사슬의 총 길이는 최소이다.

고리에 닿은 SS의 톱니바퀴를 살펴보자. 고리 위에서 서로 인접한 두 톱니바퀴는 색이 달라야 한다. 그렇지 않으면 장치가 제대로 작동하지 않는다. 고리에 닿지 않은 SS의 톱니바퀴는 색이 무엇이든 상관없다.

그리고리가 제대로 작동하는 장치를 만들 수 있는 서로 다른 집합 SS의 개수는 몇 개인가? 답이 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 구하라.

입력

첫 줄에 정수 nn이 주어진다. 이어지는 nn개의 줄에는 정수 xix_i, yiy_i와 문자 cic_i가 주어지며, 이는 ii번째 톱니바퀴의 좌표와 색이다.

출력

조건을 만족하는 집합 SS의 개수를 109+710^9+7로 나눈 나머지로 출력한다.

제한

4≤n≤5004 \le n \le 500이다. 모든 ii에 대해 −108≤xi,yi≤108-10^8 \le x_i, y_i \le 10^8이고, cic_i는 b 또는 w이다. i≠ji \ne j이면 (xi,yi)≠(xj,yj)(x_i, y_i) \ne (x_j, y_j)이다. 세 톱니바퀴가 한 직선 위에 있는 경우는 없다.

예제3

  1. 예제 1

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

    입력
    6
    0 0 w
    0 4 b
    1 2 w
    3 2 b
    4 0 b
    4 4 w
    
    예상 출력
    9
    
  3. 예제 3

    입력
    4
    0 0 b
    1 0 w
    1 1 w
    0 1 b
    
    예상 출력
    0