#include<stdio.h>
#include<string.h>
int N,M,K;
int uset[510];
void init(){
for(int i=0; i<510; ++i)
uset[i]=i;
return;
}
int root(int k){
if(k==uset[k])return k;
return uset[k]=root(uset[k]);
}
int main(){
scanf("%d%d%d", &N, &M, &K);
init();
while(K--){
int A, B;
scanf("%d%d", &A, &B);
A=root(A), B=root(B);
if(A!=B) uset[A]=B;
}
M=root(M);
int ans=0;
for(int i=1; i<=N; ++i){
if(root(i)!=M)
++ans;
}
printf("%d\n", ans);
int start=0;
for(int i=1; i<=N; ++i){
if(root(i)!=M){
if(start)printf(" ");start=1;
printf("%d", i);
}
}
return 0;
}
SeedCoder2014热身题目3:解答
最新推荐文章于 2021-06-19 01:30:05 发布