#include<bits/stdc++.h>
using namespace std;
int vis[1001],Map[1001][1001];
int n,m,k,a,b;
void dfs(int i) {//深搜查找可到达的城市并标记
vis[i]=1;
for(int j=1; j<=n; j++)
if(!vis[j]&&Map[i][j])
dfs(j);
}
int main() {
scanf("%d %d %d",&n,&m,&k);
memset(Map,0,sizeof(Map));
for(int i=0; i<m; i++) {
scanf("%d %d",&a,&b);
Map[a][b]=1;
Map[b][a]=1;
}
for(int i=0; i<k; i++) {
scanf("%d",&a);
memset(vis,0,sizeof(vis));
int N=-1;
vis[a]=1;
for(int j=1; j<=n; j++)
if(!vis[j]) {
N++;
dfs(j);
}
printf("%d\n",N);
}
return 0;
}
1013 Battle Over Cities
最新推荐文章于 2024-09-13 17:43:09 发布