记录编号 114786 评测结果 AAAAAA
题目名称 无根树转有根树 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.678 s
提交时间 2014-08-01 15:02:44 内存使用 15.57 MiB
显示代码纯文本
#include<fstream>
#include<deque>
#include<vector>
using namespace std;
ifstream fin("wgs.in");
ofstream fout("wgs.out");
vector<int> map[1000001];
int N,START,M;
int father[1000001];
void BFS(int a)
{
	int i,temp;
	deque<int> Q;
	Q.push_back(a);
	while(!Q.empty())
	{
		temp=Q.at(0);
		Q.pop_front();
		for(i=0;i<map[temp].size();i++)
		{
			if(father[map[temp][i]]==0)
			{
				father[map[temp][i]]=temp;
				Q.push_back(map[temp][i]);
			}
		}
	}
}
int main()
{
	fin>>N>>START;
	int i,A,B;
	for(i=1;i<N;i++)
	{
		fin>>A>>B;
		map[A].push_back(B);
		map[B].push_back(A);
	}
	father[START]=-1;
	BFS(START);
	fin>>M;
	for(i=1;i<=M;i++)
	{
		fin>>A;
		if(i!=M)
			fout<<father[A]<<' ';
		else
			fout<<father[A]<<endl;
	}
	return 0;
}