만드는 중입니다

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

미니언과 방

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

요약
방마다 사용 가능 여부가 범위 단위로 뒤집힐 때, 매일 뒤집기 직후 N명의 미니언을 현재 사용 가능한 방들에 나누는 집합 분할의 수를 880803841로 나눈 나머지를 구합니다.
난이도

보통10점 중 6점

유형
조합론, 구간, 구현
정답자
아직 제출이 없습니다

문제

그루의 지하실에는 미니언 NN마리가 살고, 각 미니언에는 11번부터 NN번까지 번호가 붙어 있다. 지하실에는 수용 인원 제한이 없는 방이 MM개 있고, 각 방은 사용 가능 또는 사용 불가 중 한 가지 상태다. 그루는 매일 연속한 구간에 있는 방의 상태를 모두 뒤집는다.

미니언은 사용 가능한 방에만 살 수 있다. 또 사용 가능한 방에는 미니언이 한 마리 이상 들어가야 한다. 방은 서로 구분하지 않는다. 즉 배치 AA의 모든 방에 대해, 그 방에 있는 미니언 번호 집합과 똑같은 집합을 가진 방이 배치 BB에도 있으면 AA와 BB는 같은 배치로 센다.

처음에는 모든 방이 사용 가능하다. 이어지는 DD일 동안, 그루가 그날의 구간을 뒤집은 직후 미니언을 배치하는 방법의 수를 구하라.

입력

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

각 테스트 케이스의 첫째 줄에 정수 NN, MM, DD가 공백으로 구분되어 주어진다 (1≤M≤N≤1000001 \le M \le N \le 100000, 1≤D≤1000001 \le D \le 100000).

이어지는 DD개 줄에 정수 LL과 RR이 공백으로 구분되어 주어진다 (1≤L≤R≤M1 \le L \le R \le M). 그루는 그날 방 L,L+1,…,RL, L+1, \dots, R의 상태를 뒤집는다.

출력

각 질의마다 미니언을 배치하는 방법의 수를 880803841880803841로 나눈 나머지를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    2
    3 3 2
    2 2
    1 3
    5 5 3
    1 3
    2 2
    1 5
    
    예상 출력
    3
    1
    15
    25
    15
    
  2. 예제 2

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

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

    입력
    1
    10 4 6
    2 3
    1 4
    4 4
    1 1
    1 4
    3 3
    
    예상 출력
    511
    511
    9330
    34105
    0
    1