记录编号 45769 评测结果 AAAAAAAAAA
题目名称 备用交换机 最终得分 100
用户昵称 GravatarTruth.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);
}