CF1815C Between
题目描述
给定整数 $n,m$ 和 $m$ 个整数数对 $(a_i,b_i)$,保证 $a_i\neq b_i;1\leq a_i,b_i\leq n$ 且数对之间两两不同。
你需要构造一个满足下列所有要求的序列:
- 序列中的所有元素都应为 $1\sim n$ 的整数。
- 序列中恰好有一个元素为 $1$。
- 对于每个整数 $i(1\leq i\leq m)$,都满足序列中任意两个位置不同且值为 $a_i$ 的元素之间都存在至少一个值为 $b_i$ 的元素。
- 在满足上述三条要求的情况下序列长度尽可能长。
如果满足上述前三条要求的序列可以达到任意大的长度,输出 `INFINITE`;否则输出 `FINITE`,并求出满足所有要求的任意一个序列。
每个测试点包含 $t$ 组数据。
输入格式
第一行输入一个整数 $t(1\leq t\leq300)$ 表示数据组数,接下来对于每组数据:
第一行输入两个整数 $n,m(1\leq n,\sum n\leq1500;0\le m,\sum m\leq5000)$。
接下来输入 $m$ 行,其中第 $i$ 行输入两个整数 $a_i,b_i(1\leq a_i,b_i\leq n;a_i\neq b_i)$。
保证对任意整数 $i,j(1\leq i
输出格式
对于每组数据:
如果满足上述前三条要求的序列可以达到任意大的长度,输出一行 `INFINITE`。
否则:
- 首先输出一行 `FINITE`。
- 接下来输出一行一个整数 $s$ 表示满足所有要求的序列的长度。
- 接下来输出一行 $s$ 个整数表示你所构造的满足所有要求的序列。
如果有多个满足所有要求的序列,输出任意一个即可。
可以证明在题目限制下,一个测试点内答案为 `FINITE` 的所有组数据的 $s$ 之和不会超过 $2\times10^6$。
说明/提示
In the first test case, there is an element $ 1 $ between two elements with value $ 3 $ and an element $ 1 $ between two elements with value $ 2 $ . It can be shown that there is no suitable sequences of length more than $ 5 $ .
In the second case, $ [1] $ is the only possible sequence because there should be exactly one element with value $ 1 $ in the sequence.
In the third case, we can get an arbitrary long sequence like $ 1, 2, 2, 2, \ldots $ .