树上的游戏

树上的游戏

【问题描述】
jmy在大家的帮助下终于成功破解了咒语。但是他很不服气,于是又准备和lkf玩游戏,想要赢回来。
由于之前一直在找最小生成树,jmy想到了一个树上的游戏:给定一棵树,lkf先在这棵树上加一条边(可能出现重边),jmy需要删掉其中的一条边,如果剩下的还是一棵树则jmy赢,否则lkf赢。
问题是,现在jmy不知道lkf会加哪一条边,也不知道自己应该删掉哪一条边。于是现在jmy臆测出了许多种可能,作为jmy的好朋友,你要告诉他:如果lkf在编号为x的点和编号为y的点之间加一条边,jmy删掉第z条边(边按照输入的顺序编号,不包括新加的边)是否能赢。
【输入格式】
第一行一个正整数n,表示节点个数。
接下来n-1行,每行两个正整数x,y,表示原来树上存在一条连接编号为x的节点和编号为y的节点的边。
第n+1行一个正整数Q,表示询问次数。
接下来Q行,每行三个正整数x,y,z,表示一个询问(含义如题所示)。
【输出格式】
输出共Q行。
对于每一个询问,如果lkf会赢就输出YES,否则输出NO。
【输入输出样例】
tree.in
5
1 2
2 3
2 4
4 5
3
2 5 3
2 3 1
1 5 2
tree.out
NO
YES
YES

【数据规模】
对于20%的数据保证n,Q≤1000。
对于另外20%的数据保证n,Q≤10000且树为随机生成。
对于70%的数据保证n,Q≤200000。
对于100%的数据保证n≤200000,Q≤2000000。