만드는 중입니다

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

세기는 재미없다 (어려운 버전)

시간 제한3초메모리 제한2048 MB

요약
괄호 쌍이 n개인 올바른 괄호 열에서 각 힌트가 주어질 때마다 조건을 만족하는 괄호 열의 개수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

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

문제

이 문제는 어려운 버전입니다. 두 버전의 차이는 이 버전에서 tt와 nn의 제한이 더 크다는 점입니다. 이 문제의 모든 버전을 푼 경우에만 해킹할 수 있습니다.

이제 Little John은 부자가 되어, 마침내 자신과 좋아하는 괄호 수열이 들어갈 만큼 큰 집을 샀습니다. 그런데 어쩌다 보니 괄호가 아주 많아졌습니다! 답답해진 그는 "여래신장"으로 천장을 뚫습니다.

괄호 수열이 다음 형식적인 문법으로 만들어질 수 있으면 균형 잡힌 수열이라고 합니다.

  1. 빈 수열 ∅\varnothing은 균형 잡힌 수열이다.
  2. 균형 잡힌 수열 AA가 있으면 (A)\mathtt{(}A\mathtt{)}도 균형 잡힌 수열이다.
  3. 균형 잡힌 수열 AA와 BB가 있으면 이어 붙인 ABAB도 균형 잡힌 수열이다.

예를 들어 "(())()", "()", "(()(()))", 빈 수열은 균형 잡힌 수열이고, "(()"와 "(()))("는 그렇지 않습니다.

균형 잡힌 괄호 수열 ss가 주어졌을 때, 인덱스 쌍 (i,j)(i,j) (i<ji<j)는 sis_i가 '(', sjs_j가 ')'이고, 두 괄호가 규칙 2에 따라 ss를 만드는 과정에서 함께 추가된 경우 좋은 쌍이라고 합니다. 예를 들어 "(())()"에는 (1,4)(1,4), (2,3)(2,3), (5,6)(5,6) 세 개의 서로 다른 좋은 쌍이 있습니다. 괄호 2n2n개로 이루어진 균형 잡힌 수열에는 정확히 nn개의 서로 다른 좋은 쌍이 있으며, 같은 수열을 규칙의 적용 순서를 바꿔 만들어도 좋은 쌍의 집합은 같습니다.

Emily는 John과 괄호 맞추기 게임을 합니다. 게임은 다음과 같이 진행됩니다.

처음에 John은 서로 다른 좋은 쌍을 nn개 가진 균형 잡힌 괄호 수열 ss를 가지고 있으며, Emily는 이 수열을 모릅니다. John은 Emily에게 nn의 값을 알려 주고 수열을 맞혀 보라고 합니다.

nn번의 턴에 걸쳐 John은 매 턴마다 다음 형태의 단서를 줍니다.

  • l rl\,r: 수열 ss에 좋은 쌍 (l,r)(l,r)이 있습니다.

John이 Emily에게 주는 단서들은 모두 서로 다르며 서로 모순되지 않습니다.

어느 시점에서는 지금까지 주어진 단서를 만족하는 균형 잡힌 수열이 하나뿐이라는 것을 Emily가 확신할 수 있습니다. 예를 들어 Emily가 ss에 좋은 쌍이 33개 있다는 것을 알고 있고, 좋은 쌍 (2,5)(2,5)가 들어 있다고 합시다. 좋은 쌍이 33개인 균형 잡힌 수열 55개 중에서 좋은 쌍 (2,5)(2,5)를 갖는 수열은 "((()))" 하나뿐입니다. 따라서 Emily가 ss를 알아내는 데 항상 nn번의 턴이 필요한 것은 아닙니다.

Emily가 ss의 내용을 가능한 한 일찍 알아내려면, 각 턴 뒤에 단서와 맞는 서로 다른 균형 잡힌 수열의 개수를 알아야 합니다. 좋은 쌍이 많으면 이 계산은 특히 어렵습니다. 이제 여러분이 Emily를 도울 차례입니다. 단서가 주어질 때마다 턴 전후의 답을 구하십시오. 답이 매우 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 구합니다.

입력

첫 줄에 테스트 케이스의 개수 tt (1≤t≤1041 \le t \le 10^4)가 주어집니다. 이후 테스트 케이스가 차례로 주어집니다.

각 테스트 케이스의 첫 줄에는 좋은 쌍의 개수 nn (2≤n≤3⋅1052 \le n \le 3 \cdot 10^5)이 주어집니다.

이어서 nn개의 줄에 ii번째 단서를 나타내는 두 정수 lil_i와 rir_i (1≤li<ri≤2n1 \le l_i < r_i \le 2n)가 주어집니다.

한 테스트 케이스의 단서들은 모두 서로 다르며 서로 모순되지 않습니다.

모든 테스트 케이스에 대한 nn의 합은 3⋅1053 \cdot 10^5를 넘지 않습니다.

출력

각 테스트 케이스마다 n+1n+1개의 정수를 한 줄에 출력합니다.

  • 첫 번째 정수는 단서를 하나도 주지 않았을 때의 답입니다.
  • i≥1i \ge 1인 모든 ii에 대해, i+1i+1번째 정수는 ii번째 단서를 준 뒤의 답입니다.

힌트

예제의 첫 번째 테스트 케이스는 문제 설명에서 이미 다루었습니다.

예제의 세 번째 테스트 케이스는 다음과 같이 설명됩니다. 좋은 쌍이 66개인 균형 잡힌 수열은 132132개입니다. 각 단서를 준 뒤의 답은 다음과 같습니다.

  1. 좋은 쌍 (2,3)(2,3)을 주었습니다. 좋은 쌍 (2,3)(2,3)을 갖는 균형 잡힌 수열은 4242개입니다.
  2. 좋은 쌍 (1,6)(1,6)을 주었습니다. 좋은 쌍 (2,3)(2,3)과 (1,6)(1,6)을 갖는 수열은 55개입니다.
  3. 좋은 쌍 (7,8)(7,8)을 주었습니다. 좋은 쌍 세 개를 모두 갖는 수열은 22개이며, 그 수열은 각각 "(()())()(())"와 "(()())()()()"입니다.
  4. 좋은 쌍 (9,12)(9,12)를 주었습니다. 좋은 쌍 네 개를 모두 갖는 수열은 하나뿐입니다. 따라서 ss는 "(()())()(())"로 정해집니다.

예제1

  1. 예제 1

    입력
    3
    3
    2 5
    1 6
    3 4
    4
    1 6
    7 8
    2 3
    4 5
    6
    2 3
    1 6
    7 8
    9 12
    10 11
    4 5
    
    예상 출력
    5 1 1 1
    14 2 2 1 1
    132 42 5 2 1 1 1