#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int N,M,K;
vector<int> G[1010];
int inD[1010]={0},A[1010];
void init()
{
for(int i=1;i<=N;i++)
{
A[i]=inD[i];
}
}
int main()
{
scanf("%d%d",&N,&M);
for(int i=0;i<M;i++)
{
int c1,c2;
scanf("%d%d",&c1,&c2);
G[c1].push_back(c2);
inD[c2]++;
}
scanf("%d",&K);
int num=0;
for(int i=0;i<K;i++)
{
init();
int now;
bool flag=true;
for(int j=0;j<N;j++)
{
scanf("%d",&now);
if(A[now]!=0)
{
flag=false;
}
else
{
for(int k=0;k<G[now].size();k++)
{
A[G[now][k]]--;
}
}
}
if(!flag)
{
if(num!=0)printf(" ");
printf("%d",i);
num++;
}
}
printf("\n");
system("pause");
return 0;
}
PAT甲1146 Topological Order (25)
猜你喜欢
转载自blog.csdn.net/yhy489275918/article/details/80478546
今日推荐
周排行