#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int graph[1010][1010]={0};
int visited[1010] = {0};
int check[1010] = {0};
int N,M,K;
void DFS(int i)
{
visited[i] = 1;
for(int j = 1;j<=N;j++)
{
if((visited[j] == 0)&&(graph[i][j] == 1))
DFS(j);
}
}
int main()
{
scanf("%d %d %d",&N,&M,&K);
for(int i=1;i<=M;i++)
{
int h,j;
scanf("%d %d",&h,&j);
graph[h][j] = 1;
graph[j][h] = 1;
}
for(int i=1;i<=K;i++)
{
int tmp;
scanf("%d",&tmp);
check[i] = tmp;
}
for(int i=1;i<=K;i++)
{
int sum_cc = 0;
memset(visited,0,sizeof(visited));
int ck = check[i];
visited[ck] = 1;
for(int j = 1;j<=N;j++)
{
if(visited[j]==0){
DFS(j);
sum_cc++;
}
}
cout<<sum_cc-1<<endl;
}
return 0;
}
PTA 1013 Battle Over Cities
猜你喜欢
转载自blog.csdn.net/qq_37637619/article/details/88934013
今日推荐
周排行