记录编号 154656 评测结果 AAAAAAAAAA
题目名称 备用交换机 最终得分 100
用户昵称 Gravatarok 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2015-03-23 19:05:15 内存使用 0.31 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <deque>
using namespace std;
deque<int> a[101],st;
int n,ans=0,ji=0,dfn[101]={0},low[101]={0},se[101]={0};
bool res[101]={0};
int tarjan(int x)
{
	int tot=0,i,mmm;
	dfn[x]=low[x]=++ji;
	se[x]=1;
	for(i=0;i<(int)a[x].size();i++)
	{
		mmm=a[x][i];
		if(!se[mmm])
		{
			tot++;
			tarjan(mmm);
			low[x]=min(low[x],low[mmm]);
			if(dfn[x]>1&&low[mmm]>=dfn[x]&&!res[x])
			{
				ans++;
				res[x]++;
			}
			if(dfn[x]==1&&tot>1&&!res[x])
			{
				ans++;
				res[x]++;
			}
		}
		else low[x]=min(low[x],dfn[mmm]);
	}
	se[x]=2;
	return 0;
}
int main()
{
	int i,b,c;
	freopen ("gd.in","r",stdin);
	freopen ("gd.out","w",stdout);
	scanf("%d",&n);
	while(scanf("%d%d",&b,&c)>=2)
	{
		a[b].push_back(c);
		a[c].push_back(b);
	}
	tarjan(1);
	printf("%d\n",ans);
	for(i=1;i<=n;i++)
	{
		if(res[i]) printf("%d\n",i);
	}
	return 0;
}