判断是否是合法拓扑序,水~。
const int N=1010;
vector<int> g[N];
int din[N],tdin[N];
int n,m,q;
int main()
{
cin>>n>>m;
while(m--)
{
int a,b;
cin>>a>>b;
g[a].pb(b);
din[b]++;
}
vector<int> res;
cin>>q;
for(int k=0;k<q;k++)
{
memcpy(tdin,din,sizeof din);
bool ok=true;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(tdin[x] == 0)
{
for(int j=0;j<g[x].size();j++)
--tdin[g[x][j]];
}
else
ok=false;
}
if(!ok) res.pb(k);
}
for(int i=0;i<res.size();i++)
if(i) cout<<' '<<res[i];
else cout<<res[i];
cout<<endl;
//system("pause");
return 0;
}