记录编号 443568 评测结果 AAAAAAAAAA
题目名称 [HEOI 2016] 树 最终得分 100
用户昵称 GravatarLetter zZZz 是否通过 通过
代码语言 C++ 运行时间 0.720 s
提交时间 2017-08-31 15:11:50 内存使用 0.96 MiB
显示代码纯文本
#include <fstream>
#include <iostream>
using namespace std;
ifstream fi ("heoi2016_tree.in");
ofstream fo ("heoi2016_tree.out");
int main()
{
	int N,Q,u,v,i,num,k;
	int tree[100001]={0},sig[100001]={0};
	string L;
	sig[1]=1;
	fi>>N>>Q;
	for (i=1;i<=N-1;i++)
	{
		fi>>u>>v;
		tree[v]=u;
	}
	for (int j=1;j<=Q;j++)
	{
		fi>>L>>num;
		if (L=="C")
			sig[num]=1;
		else if (L=="Q")
		{
			k=num;
			int t=0;
			do
			{
				if (sig[k]==1)
				{
					fo<<k<<endl;
					t=1;
				}
				else if (sig[tree[k]]==1)
				{
					fo<<tree[k]<<endl;
					t=1;
				}
				else k=tree[k];
			}while (t==0);
		}
	}
	return 0;
}