搞不懂……一个AC,九个MLE
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
char c;int res=0,flag=1;
for(;!isdigit(c);c=getchar())if(c=='-')flag=-1;
for(;isdigit(c);c=getchar())res=res*10+c-'0';
return res*flag;
}
vector<int>G[1002];
vector<int>cow;
int cnt[1002];
bool vis[1002];
int n,k,m,ans;
void dfs(int u)
{
cnt[u]++;
vis[u]=1;
for(int v:G[u])
{
dfs(v);
}
}
int main()
{
k=read(),n=read(),m=read();
for(int i=1;i<=k;i++)
{
cow.push_back(read());
}
for(int i=1;i<=m;i++)
{
int u=read(),v=read();
G[u].push_back(v);
}
for(int i:cow)
{
memset(vis,0,sizeof vis);
dfs(i);
}
for(int i=1;i<=n;i++)
{
if(cnt[i]==k)ans++;
}
printf("%d\n",ans);
return 0;
}