#CF1914G2. 灯泡(困难版)

灯泡(困难版)

灯泡(困难版)

  • 时间限制:3 秒
  • 内存限制:512 MiB

题目描述

有 2n2n 个灯泡排成一行。每个灯泡的颜色是 11 到 nn 中的一个,每种颜色恰好出现两次。最初所有灯泡都关闭,你需要选择一个集合 SS,将其中灯泡初始打开。

此后可按任意顺序执行任意次操作:

  • 若同色的两盏灯恰有一盏打开,则打开另一盏;
  • 若位置 i,ki,k 的两盏同色灯均已打开,则可打开任意满足 i<j<ki<j<k 的灯泡 jj。

选择 SS 使所有灯泡最终都能打开。求 ∣S∣|S| 的最小值,以及达到最小值的集合 SS 的数量。方案数对 998244353998244353 取模。

输入格式

第一行一个整数 tt,表示测试用例数量。

每个测试用例第一行一个整数 nn,第二行给出 2n2n 个整数 c1,c2,…,c2nc_1,c_2,\ldots,c_{2n}。每种颜色 1,2,…,n1,2,\ldots,n 恰好出现两次。

输出格式

对每个测试用例输出两个整数:最小的 ∣S∣|S|,以及最小集合数量模 998244353998244353。

样例输入 1

4
2
2 2 1 1
2
1 2 2 1
2
1 2 1 2
5
3 4 4 5 3 1 1 5 2 2

样例输出 1

2 4
1 2
1 4
2 8

数据范围

  • 1≤t≤1041\le t\le10^4;
  • 2≤n≤2×1052\le n\le2\times10^5;
  • 1≤ci≤n1\le c_i\le n,每种颜色恰好出现两次;
  • 单个输入文件内所有测试用例的 nn 之和不超过 2×1052\times10^5。
子任务编号 分值 特殊限制
1 20 n≤8n\le 8
2 40 n≤2000n\le 2000
3 无特殊限制