#include<stdio.h>
#include
<string.h>
#define maxn 1001
#define maxk 101
int map[maxn][maxn];
int cow_loc[maxk],hold[maxn];
int visited[maxn];
int k,n,m;

void DFS(int x)
int j;
  visited[x]
=1;
  hold[x]
++;
  
for(j=1;j<=n;j++){
     
if(map[x][j]==1&&visited[j]==0)
       DFS(j);
  }
}

void begin()
int i,j;
  
for(i=1;i<=k;i++){
     memset(visited,
0,sizeof(visited));
     
     DFS(cow_loc[i]);
   }
}
int main()
int i,st,loc,count=0;
  memset(hold,
0,sizeof(hold));
  memset(map,
0,sizeof(map));
  scanf(
"%d%d%d",&k,&n,&m);
  
for(i=1;i<=k;i++){
     scanf(
"%d",&cow_loc[i]);
    }
  
for(i=1;i<=m;i++){
    scanf(
"%d%d",&st,&loc);
    map[st][loc]
=1;
    }
  begin();
  
for(i=1;i<=n;i++){
    
if(hold[i]==k)
     count
++;
      }
 printf(
"%d\n",count);
return 0;
}
联系BFS。。居然写出了一段DFS代码。。。。明天写下这道题的BFS的吧。。比较下算法。。。400MS过,悲哀呢。。。