#include<bits/stdc++.h>
using namespace std;
const int N=110;
int n,cnt,s[5*N];
struct Node
{
bool f;
int t,wz;
int b[N];
}a[N];
int read()
{
int s=0,f=1;
char ch=getchar();
while(!isdigit(ch)) f=-f,ch=getchar();
while(isdigit(ch)) s=(s<<3)+(s<<1)+ch-'0',ch=getchar();
return s*f;
}
void write(int x)
{
if(x<0) x=-x,putchar('-');
if(x>9) write(x/10);
putchar(x%10+'0');
}
int main()
{
n=read();
for(int i=1;i<=n;i++)
{
int x=read(),d=read();
a[i].wz=x;a[i].t=d;a[i].f=false;
for(int j=1;j<=d;j++)
{
int m=read();
s[m]++;
a[i].b[j]=m;
}
}
cnt=n;
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
if(!a[i].f&&!s[a[i].wz]){
a[i].f=true;
cnt--;
for(int j=1;j<=a[i].t;j++) s[a[i].b[j]]--;
}
if(!cnt) puts("YES");
else write(cnt);
return 0;
}
提交WA了4个点