아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

춤추는 원

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

요약
원형으로 둘러선 n명의 아이에게 이진 복장을 배정하되, 각 아이를 중심으로 한 연속 구간의 합 홀짝을 나타내는 n개의 조건을 모두 만족하는 배정의 수를 1e9+7로 나눈 나머지로 구한다.
난이도

어려움10점 중 9점

유형
수학, 누적 합, 유니온 파인드, 조합론
정답자
아직 제출이 없습니다

문제

할로윈이다. 당신은 동네 아이들을 위해 모닥불과 춤을 준비했다. nn명의 아이들이 불 주위에서 춤을 추기 위해 원을 이루어 모였다. 각 아이는 주황색 호박 또는 검은 박쥐, 두 가지 무시무시한 의상 중 하나를 입고 있다. 바깥이 어두워서 아이들이 모닥불 뒤로 지나갈 때에만 몇 명의 아이를 볼 수 있다. 아이들이 고르게 서 있지 않기 때문에 매 순간 볼 수 있는 아이의 수는 다르다. 특히, 춤추는 원을 따라 시계 방향으로 아이들에게 0,1,…,n−10, 1, \ldots, n - 1번을 붙이면, 어느 순간에든 시야의 중심에 있는 아이 ii와 원을 따라 아이 ii 앞쪽의 lil_i명, 뒤쪽의 rir_i명을 볼 수 있다. 즉, i−li,…,i−1,i,i+1,…,i+rii-l_i, \ldots, i-1, i, i+1, \ldots, i+r_i번 아이를 볼 수 있으며, 물론 인덱스는 nn으로 나눈 나머지로 계산한다.

아이들이 춤추는 동안 시간을 보내기 위해, 당신은 문득 궁금해진다. 각 아이 ii에 대해, 아이 ii를 중심으로 하는 li+ri+1l_i + r_i + 1명의 아이 중 주황색 호박 의상을 입은 아이의 수가 짝수인지 홀수인지만 안다고 하자. 그러면 각 아이가 어떤 의상을 입고 있는지 유일하게 알아낼 수 있을까? li=ri=0l_i = r_i = 0일 때는 분명히 가능하다. 하지만 lil_i와 rir_i가 항상 0이 아니면 어떨까? 가능한 답이 여러 개이거나 아예 없을 수도 있을까? 당신은 저녁에 집에 돌아와 컴퓨터 앞에 앉으면 이 문제를 조사하기로 한다.

입력

입력의 첫 줄에는 원에 있는 아이의 수를 나타내는 정수 nn이 주어진다 (1≤n≤200 0001 \le n \le 200\,000). 다음 nn개의 줄은 서로 다른 순간에 볼 수 있는 아이들을 나타낸다. ii번째 줄(0부터 시작)에는 공백으로 구분된 음이 아닌 정수 li,ri,xil_i, r_i, x_i가 주어진다 (li+ri+1≤nl_i + r_i + 1 \le n, 0≤xi≤10 \le x_i \le 1). 아이 ii가 시야의 중심에 있을 때 li+ri+1l_i + r_i + 1명의 아이를 볼 수 있다 (아이 ii의 왼쪽으로 lil_i명, 오른쪽으로 rir_i명). xi=0x_i = 0이면 그중 주황색 호박 의상을 입은 아이의 수가 짝수이고, xi=1x_i = 1이면 홀수이다.

출력

관측과 일치하도록 각 아이에게 의상을 배정하는 방법의 수를 계산하라. 이 수는 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다. (모든 홀짝 제약을 만족하는 의상 배정이 하나도 없으면 0을 출력한다.)

예제2

  1. 예제 1

    입력
    5
    1 0 0
    1 0 1
    3 0 1
    3 0 0
    3 0 1
    
    예상 출력
    0
    
  2. 예제 2

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