记录编号 81352 评测结果 AAAAAWWWWA
题目名称 备用交换机 最终得分 60
用户昵称 Gravatarranto 是否通过 未通过
代码语言 C++ 运行时间 0.003 s
提交时间 2013-11-11 21:45:00 内存使用 0.31 MiB
显示代码纯文本
#include <fstream>
#include <queue>
#include <list>

using namespace std;

ifstream in("gd.in");
ofstream out("gd.out");

int n;
list<int> *map;
int setnum(0);
int *set;

void input();
void proc();
void output();

int main()
{
	input();
	proc();
	output();
	return 0;
}

void input()
{
	in>>n;
	map=new list<int> [n+1];
	set=new int [n+1];
	for(int i=1;i!=n+1;++i)
	{
		set[i]=0;
	}
	while(!in.eof())
	{
		int a,b;
		in>>a>>b;
		map[a].push_back(b);
		map[b].push_back(a);
	}
	return ;
}

void bfs(int a)
{
	queue<int> q;
	int *flag=new int [n+1];
	for(int i=1;i!=n+1;++i)
	{
		flag[i]=0;
	}
	flag[a]=1;
	flag[*(map[a].begin())]=1;
	q.push(*(map[a].begin()));
	while(!q.empty())
	{
		int itemp(q.front());
		q.pop();
		for(list<int>::iterator it=map[itemp].begin();it!=map[itemp].end();++it)
		{
			if(flag[*it]==0)
			{
				q.push(*it);
				flag[*it]=1;
			}
		}
	}
	for(int i=1;i!=n+1;++i)
	{
		if(flag[i]==0)
		{
			set[a]=1;
			++setnum;
			break;
		}
	}
}

void proc()
{
	for(int i=1;i!=n+1;++i)
	{
		bfs(i);
	}
	return ;
}

void output()
{
	out<<setnum<<endl;
	for(int i=1;i!=n+1;++i)
	{
		if(set[i]==1)
		{
			out<<i<<endl;
		}
	}
	return ;
}