记录编号 |
126186 |
评测结果 |
AAAAAAAAAA |
题目名称 |
备用交换机 |
最终得分 |
100 |
用户昵称 |
水中音 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.003 s |
提交时间 |
2014-10-11 17:58:31 |
内存使用 |
0.35 MiB |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
bool pan[101]={0},pan2[101]={0};
int n,i,p,l,zj1,zj2,lu[101][101],tu[101]={0},zhi[101]={0},shu;
void dfs(int x)
{
pan[x]=false;tu[0]++;tu[tu[0]]=x;
for(int i=1;i<=lu[x][0];i++)
if(pan[lu[x][i]])dfs(lu[x][i]);
}
void dfs2(int x)
{
pan2[x]=false;
for(int i=1;i<=lu[x][0];i++)
if(pan2[lu[x][i]]){shu++;dfs2(lu[x][i]);}
}
int main()
{
freopen("gd.in","r",stdin);
freopen("gd.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) pan[i]=true;
while(scanf("%d%d",&zj1,&zj2)!=EOF)
{
lu[zj1][0]++;
lu[zj1][ lu[zj1][0] ]=zj2;
lu[zj2][0]++;
lu[zj2][ lu[zj2][0] ]=zj1;
}
for(i=1;i<=n;i++)
{
if(pan[i])
{
tu[0]=0;
dfs(i);
zj2=tu[0]-1;
for(p=1;p<=tu[0];p++)
{
shu=1;
for(l=1;l<=tu[0];l++)pan2[tu[l]]=true;
pan2[tu[p]]=false;
dfs2(lu[tu[p]][1]);
if(shu!=zj2)
{
zhi[0]++;
zhi[zhi[0]]=tu[p];
}
}
}
}
sort(zhi+1,zhi+(zhi[0]+1));
for(l=0;l<=zhi[0];l++) printf("%d\n",zhi[l]);
return 0;
}