WA on #2 #10 #15
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6;
struct node {
int sz,id;
vector <int> p;
inline friend bool operator <(const node &x,const node &y) {
return x.sz>y.sz;
}
} a[MAXN];
int lst[MAXN];
inline void solve() {
int n;
scanf("%d",&n);
memset(lst,0,sizeof(lst));
for(int i=1;i<=n;++i) a[i].p.clear();
for(int i=1;i<=n;++i) {
scanf("%d",&a[i].sz);
a[i].id=i;
for(int j=1;j<=a[i].sz;++j) {
int x;
scanf("%d",&x);
a[i].p.push_back(x);
}
}
sort(a+1,a+n+1);
for(int i=1;i<=n;++i) {
int pre=0;
for(int v:a[i].p) {
if(pre!=0&&lst[v]!=pre) {
printf("YES\n%d %d\n",a[i].id,a[max(lst[v],pre)].id);
return ;
} else pre=lst[v];
}
for(int v:a[i].p) lst[v]=i;
}
puts("NO");
return ;
}
signed main() {
int T;
scanf("%d",&T);
while(T--) solve();
return 0;
}