좋은 순열의 개수

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

어려움8조합론수학동적 계획법비트 연산아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

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

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

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

입력

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

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

출력

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

힌트

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