记录编号 |
45769 |
评测结果 |
AAAAAAAAAA |
题目名称 |
备用交换机 |
最终得分 |
100 |
用户昵称 |
Truth.Cirno |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.012 s |
提交时间 |
2012-10-25 10:53:10 |
内存使用 |
1.29 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <memory.h>
#include <vector>
using namespace std;
int waynum[110];
bool used[110],ans[110];
vector<int> wayto[110];
void dfs(int pos)
{
int i;
for (i=0;i<waynum[pos];i++)
{
if (!used[wayto[pos][i]])
{
used[wayto[pos][i]]=true;
dfs(wayto[pos][i]);
}
}
}
int main(void)
{
freopen("gd.in","r",stdin);
freopen("gd.out","w",stdout);
int i,j,n,a,b,c=0,c1,c2;
scanf("%d",&n);
while (scanf("%d%d",&a,&b)==2)
{
waynum[a]++;
waynum[b]++;
wayto[a].push_back(b);
wayto[b].push_back(a);
}
for (i=1;i<=n;i++)
{
if (!waynum[i])
continue;
else
{
used[wayto[i][0]]=true;
dfs(wayto[i][0]);
}
/*error*//*error*//*error*//*error*/
if (!used[1])
continue;
/*error*//*error*//*error*//*error*/
c1=0;
for (j=1;j<=n;j++)
if (used[j])
c1++;
memset(used,0,sizeof(used));
used[i]=true;
used[wayto[i][0]]=true;
dfs(wayto[i][0]);
c2=0;
for (j=1;j<=n;j++)
if (used[j])
c2++;
if (c1!=c2)
{
c++;
ans[i]=true;
}
memset(used,0,sizeof(used));
}
printf("%d\n",c);
if (c)
for (i=1;i<=n;i++)
if (ans[i])
printf("%d\n",i);
return(0);
}