#P10105. [GDKOI2023 提高组] 游戏

[GDKOI2023 提高组] 游戏

题目描述

你正在树上玩游戏。

给定一棵 nn 个结点的树,有 QQ 次询问,每次给定 x,y,zx, y, z,你要找到三个点 (u,v,w)(u, v, w) 满足 $\operatorname{dis}(u, v) = x, \operatorname{dis}(u, w) = y, \operatorname{dis}(v, w) = z$。其中 dis(u,v)\operatorname{dis}(u, v) 表示树上 uuvv 两点唯一简单路径所包含的边数,dis(u,u)=0\operatorname{dis}(u, u) = 0。 保证有解。

输入格式

第一行一个整数 nn,表示树的结点数。

接下来 n1n - 1 行每行两个点 u,vu, v 表示一条 uuvv 的边。

接下来一个整数 QQ,表示询问次数。

接下来 QQ 行,每行三个整数 x,y,zx, y, z 表示一组询问。

输出格式

输出 QQ 行,每行三个整数 u,v,wu, v, w,满足 $\operatorname{dis}(u, v) = x, \operatorname{dis}(u, w) = y, \operatorname{dis}(v, w) = z$。如果多组合法的 (u,v,w)(u, v, w),输出任意一组,保证有解。

10
7 10
2 8
10 2
8 1
9 7
4 5
1 6
9 4
4 3
10
3 2 1
5 4 1
6 6 0
3 0 3
1 5 4
2 5 7
6 5 1
2 1 3
2 0 2
2 2 0
2 6 1
7 6 1
9 6 6
6 2 6
6 1 7
8 6 4
9 6 1
1 2 6
6 8 6
8 6 6

提示

对于 10% 的数据,满足 n,Q500n, Q ≤ 500

对于 20% 的数据,满足 n,Q2×103n, Q ≤ 2 \times 10^3

对于另外 20% 的数据,满足 Q=1Q = 1

对于另外 20% 的数据,满足 Q10Q \le 10

对于另外 10% 的数据,满足第 ii 条边连接 iii+1i + 1

对于另外 10% 的数据,满足 x=0x = 0

对于 100% 的数据,满足 $1 ≤ n, Q ≤ 2 \times 10^5, 0 ≤ x, y, z ≤ 2 \times 10^5$。

下发 checker 和 checker.exe,分别用于 64 位 linux 以及 windows 下的答案校验。

你可以使用 ./checker < 输入文件名 > < 输出文件名 > < 答案文件名 > 来检测你的输出文件是否合 法。

实际上下发的 checker 并不会用到答案文件,所以你只需要随便选择一个文件作为答案文件即可。

你需要保证输入文件合法,即格式正确并且有解,否则可能会出现未知错误。

根据你的输出文件的问题,checker 分别会返回一下信息:

  1. 如果你的输出文件正确,则 checker 会返回 Accepted!
  2. 如果在第 tt 组数据,答案错误,则 checker 会返回 Wrong answer on test t!
  3. 如果你的格式错误,则 checker 会返回 wrong output format 后接相关错误信息。