만드는 중입니다

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

좋은 순열의 개수

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

요약
주어진 고정 위치 조건을 만족하면서 i<j, P[i]>j, P[j]>i인 쌍을 적어도 하나 포함하는 1부터 N까지의 순열 개수를 2000000011로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

유형
조합론, 수학, 동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

크기가 MM인 배열 XX와 VV, 그리고 정수 NN이 주어진다. 다음 세 조건을 모두 만족하는 길이 NN짜리 순열 PP의 개수를 구하는 프로그램을 작성하시오. 배열과 순열의 번호는 모두 1번부터 매긴다.

  • PP는 1부터 NN까지의 수가 각각 한 번씩 나오는 수열이다.
  • i<ji < j이면서 P[i]>jP[i] > j이고 P[j]>iP[j] > i인 쌍 (i,j)(i, j)가 적어도 하나 있다.
  • 모든 1≤i≤M1 \le i \le M에 대해 P[X[i]]=V[i]P[X[i]] = V[i]이다.

XX에는 같은 값이 여러 번 나오기도 한다. 세 조건을 동시에 만족하는 순열이 하나도 없으면 답은 0이다.

입력

첫째 줄에 테스트 케이스의 개수 TT(1≤T≤101 \le T \le 10)가 주어진다.

각 테스트 케이스의 첫째 줄에는 NN과 MM(1≤N≤1091 \le N \le 10^9, 0≤M≤1040 \le M \le 10^4)이 주어진다. 이어지는 MM개 줄 가운데 ii번째 줄에는 X[i]X[i]와 V[i]V[i](1≤X[i],V[i]≤N1 \le X[i], V[i] \le N)가 주어진다.

출력

각 테스트 케이스마다 조건을 만족하는 순열 PP의 개수를 20000000112000000011로 나눈 나머지를 한 줄에 출력한다.

힌트

N=3N = 3이고 고정된 값이 하나도 없으면 조건을 만족하는 순열은 (3,2,1)(3, 2, 1) 하나뿐이다.

예제2

  1. 예제 1

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

    입력
    6
    1 0
    2 0
    3 0
    4 0
    5 0
    6 0
    
    예상 출력
    0
    0
    1
    12
    91
    650