数据组成
由官方数据 + infoj 民间数据组成(民间数据存在于 extra test 中)。
请注意,本题 extra test 中一个人会做的题可能重复,如果您的代码不能处理重复(题目中确实说了 集合),可以尝试读入加一个 unique。
- 对于
vector
:v.resize(unique(v.begin(),v.end())-v.begin());
- 对于数组
a[1..n]
:n=unique(a+1,a+n+1)-a-1;
- 对于数组
a[0..n-1]
:n=unique(a,a+n)-a;
题目描述
有 $n$ 个人正在打模拟赛,模拟赛有 $n$ 道题目。
有两人都会的题目并且没有人会的题目包含另一个人时,两者之间才会讨论。
(定义第 $i$ 个人会的题目的集合为 $S_i$ ,即当 $S_x\cap S_y\neq\varnothing\land S_x\not\subseteq S_y\land S_y\not\subseteq S_x$ 时,第 $x$ 人和第 $y$ 人会讨论)
为了让模拟赛的效果更好,希望你可以找出一对会讨论的人或判断不存在。
输入格式
第一行一个正整数 $T$ 表示数据组数,对于每组数据:
第一行一个正整数 $n$ 表示人数和题目数量。
接下来 $n$ 行,第 $i$ 行第一个自然数 $k_i$ 表示第 $i$ 个人会 $k_i$ 道题。接下来 $k_i$ 个正整数,每个数 $x$ 表示第 $i$ 个人会第 $x$ 道题。
输出格式
对于每组数据:
如果没有会讨论的人,输出 NO
。
否则第一行输出 YES
,第二行输出两个正整数 $x$ 和 $y$,表示第 $x$ 人和第 $y$ 人会讨论。
如果有多种方案,输出任意一种即可。
输入输出样例
样例输入 1
2 5 4 1 2 3 5 3 1 2 3 2 1 2 1 1 1 4 4 3 1 2 3 3 2 3 4 0 4 1 2 3 4
样例输出 1
NO YES 1 2
数据范围
对于所有测试点:令一组数据中 $m=\sum k_i$,则 $1\le T\le 5$,$1\le \sum n\le {10}^6$,$1\le \sum m\le 2\times {10}^6$,$0\le k_i\le n$。
每个测试点的具体限制见下表: