用这种方法竟然能过
#include<bits/stdc++.h>
using namespace std;
bool g[1005][1005];
int cow[105];
int main(){
int k, n, m;
scanf("%d%d%d", &k, &n, &m);
for(int i = 1; i <= k; i++){
scanf("%d", &cow[i]);
}
for(int i = 1; i <= m; i++){
int x, y;
scanf("%d%d", &x, &y);
g[x][y] = true;
}
for(int l = 1; l <= n; l++){
g[l][l] = true;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
if(g[i][l] && g[l][j]) {
g[i][j] = true;
}
}
}
}
int ans = 0;
for(int i = 1; i <= n; i++){
int flag = 0;
for(int j = 1; j <= k; j++){
if(!g[cow[j]][i]){
flag = 1;
break;
}
}
if(flag == 0){
ans++;
}
}
printf("%d", ans);
return 0;
}
我在学校的OJ上都过不了