SP18287 IITWPC4K - Maggu and Magguness Level

题目描述

目前你已经知道 Maggu 是个极客,他所在的班级共有 $n$ 个学生,且每个学生都是极客。你会获得 $m$ 条信息,每条信息的形式为 $a, b$,表示第 $a$ 个人的极客程度小于第 $b$ 个人(也即 $\text{geekiness}(a) < \text{geekiness}(b)$)。值得注意的是,每个人的极客程度是唯一的,取值范围从 $1$ 到 $n$。现在,Maggu 想知道他可能的极客程度是多少。如果无法找到这样的极客等级分配,则输出 `-1`。

输入格式

第一行包含一个整数 $T$,表示测试用例的数量($1 \le T \le 100$)。 对每个测试用例,第一行包含三个整数 $n, m, \text{idx}$,其中 $n$ 表示班级中的男生数量,$m$ 表示已知的信息数量,$\text{idx}$ 是 Maggu 在班级中的索引位置。满足 $1 \le n \le 10^6$,$1 \le m \le \min(10^5, n \cdot (n - 1) / 2)$,$1 \le \text{idx} \le n$。 接下来的 $m$ 行每行包含两个整数 $a, b$,表示第 $a$ 个人的极客程度小于第 $b$ 个人。其中 $1 \le a, b \le n$。 输入中不会出现重复的信息对。

输出格式

对于每个测试用例,你需要根据情况输出一行或两行。如果发现极客程度的分配不可能存在,直接输出 `-1`。 在可能存在的情况下,输出两行:第一行是一个整数,表示 Maggu 可能的极客程度取值数;第二行列出所有可能的极客程度值,这些值需以升序排列并用空格分隔。 **本翻译由 AI 自动生成**