#include<iostream>
#include<vector>
using namespace std;
int main(){
int N,M,K,a,b,flag=1;
cin>>N>>M;
vector<int> v[N+1],in(N+1);
for(int i=0;i<M;i++){
cin>>a>>b;
v[a].push_back(b);
in[b]++;
}
cin>>K;
for(int i=0;i<K;i++){
int judge=1;
vector<int> t(in.begin(),in.end());
for(int j=0;j<N;j++){
cin>>a;
if(t[a]>0) judge=0;
for(vector<int> ::iterator it=v[a].begin();it!=v[a].end();it++) t[*it]--;
}
if(judge==0){
printf("%s%d",flag==1?"":" ",i);
flag++;
}
}
return 0;
}
1146 Topological Order
最新推荐文章于 2020-09-05 10:48:03 发布