Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 512 MB Total points: 100 Hackable ✓
Statistics

Yuki는 크기가 $n$인 중복집합 $S=\{s_1,\ldots,s_n\}$과 정수 $k$를 가지고 있습니다.

Yuki는 변환을 다음과 같이 정의합니다:

  • $S$의 부분집합 $S'$(여기서 $S'$은 공집합일 수 있음)을 선택하여 $S$에서 $S'$을 제거하고, $S'$의 $\operatorname{mex}^{*}$를 $S$에 추가합니다.

이제 Yuki는 몇 번의 변환을 수행하여 $S$가 $\{k\}$가 되도록 만들고 싶습니다. $S$를 $\{k\}$와 같게 만들기 위해 필요한 최소 변환 횟수를 구하여 Yuki를 도와주세요. 답이 매우 클 수 있으므로 $998244353$으로 나눈 나머지만 출력하면 됩니다.

$S$를 $\{k\}$로 변환할 수 있는 연산 순서가 항상 적어도 하나 존재함을 증명할 수 있습니다.

$*$: 중복집합의 mex는 그 중복집합에 나타나지 않는 가장 작은 음이 아닌 정수입니다. 예를 들어, $\operatorname{mex}\{0,1,2\}=3$, $\operatorname{mex}\{1,0,3,1\}=2$, $\operatorname{mex}\varnothing=0$입니다.

입력 형식

이 문제는 여러 개의 테스트 케이스를 포함합니다.

첫 번째 줄에 테스트 케이스의 개수를 나타내는 양의 정수 $t$ ($1 \le t \le 10^5$)가 주어집니다.

각 테스트 케이스에 대하여:

  • 첫 번째 줄에 두 정수 $n,k$ ($1 \le n \le 5 \cdot 10^5$, $0 \le k \le 10^9$)가 주어집니다.
  • 두 번째 줄에 $n$개의 정수 $s_1,\ldots,s_n$ ($0 \le s_i \le 10^9$)이 주어집니다.

모든 테스트 케이스에서 $n$의 합은 $5 \cdot 10^5$을 초과하지 않음이 보장됩니다.

출력 형식

각 테스트 케이스마다 $S$를 $\{k\}$와 같게 만들기 위해 필요한 최소 변환 횟수를 $998244353$으로 나눈 나머지를 한 줄에 출력합니다.

예제

예제 입력 1

6
1 2
1
1 4
4
3 3
0 2 2
4 2
1 0 3 2
4 3
2 1 0 2
3 52
20 2 6

예제 출력 1

2
0
3
2
1
262875292

노트

1번째 테스트 케이스에 대하여:

  • Yuki는 1번째 변환에서 $S'=\varnothing$을 선택하여 $S=\{0,1\}$로 만들고, 2번째 변환에서 $S'=\{0,1\}$을 선택하여 $S=\{2\}$로 만들 수 있습니다.
  • 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $2$입니다.

2번째 테스트 케이스에 대하여:

  • $S=\{4\}$로 만들기 위해 어떠한 변환도 수행할 필요가 없으므로 답은 $0$입니다.

3번째 테스트 케이스에 대하여:

  • Yuki는 1번째 변환에서 $S'=\varnothing$을 선택하여 $S=\{0,0,2,2\}$로 만들고, 2번째 변환에서 $S'=\{0,2\}$를 선택하여 $S=\{0,1,2\}$로 만든 뒤, 3번째 변환에서 $S'=\{0,1,2\}$를 선택하여 $S=\{3\}$으로 만들 수 있습니다.
  • 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $3$입니다.

4번째 테스트 케이스에 대하여:

  • Yuki는 1번째 변환에서 $S'=\{2,3\}$을 선택하여 $S=\{0,0,1\}$로 만들고, 2번째 변환에서 $S'=\{0,0,1\}$을 선택하여 $S=\{2\}$로 만들 수 있습니다.
  • 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $2$입니다.

5번째 테스트 케이스에 대하여:

  • Yuki는 1번째 변환에서 바로 $S'=\{0,1,2,2\}$를 선택하여 $S=\{3\}$으로 만들 수 있습니다.
  • 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $1$입니다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.