#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn=1010;
const int INF=100000000;
int G[maxn][maxn];
int n,m,k;
bool inq[maxn];
int num;
void bfs(int u)
{
queue<int> q;
q.push(u);
inq[u]=true;
while(!q.empty())
{
int top=q.front();
q.pop();
for(int i=1;i<=n;i++)
{
if(inq[i]==false&&G[top][i]!=INF)
{
q.push(i);
inq[i]=true;
}
}
}
}
void bfstra()
{
for(int i=1;i<=n;i++)
{
if(inq[i]==false)
{
bfs(i);
num++;
}
}
}
int id1[maxn],id2[maxn];
void init()
{
fill(G[0],G[0]+maxn*maxn,INF);
for(int i=1;i<=m;i++)
{
G[id1[i]][id2[i]]=G[id2[i]][id1[i]]=0;
}
num=0;
memset(inq,false,sizeof(inq));
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&id1[i],&id2[i]);
}
int a;
for(int i=0;i<k;i++)
{
scanf("%d",&a);
init();
for(int j=1;j<=n;j++)
{
G[a][j]=G[j][a]=INF;
}
bfstra();
printf("%d\n",num-2);
}
system("pause");
return 0;
}
PAT 1013
最新推荐文章于 2022-09-18 15:21:41 发布