#P2128. Duff in the Army

    ID: 2128 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>数据结构线段树树结构树链剖分树上倍增CodeForces

Duff in the Army

题目描述

Duff 是一个军队中的一名士兵。Malek 是的上司。

他们在一个名为 Andarz Gu 的国家里,这个国家有 nn 个城市,分别编号 1n1\sim n。有 n1n-1 条双向通行的道路联通整个国家。

一共有 mm 个人居住在这个国家中的一些城市里,每一个人有他的身份号(第 ii 个人的身份号是 ii)。注意,有可能有多个人居住在同一个城市,也有可能有些城市无人居住。

Malek 喜欢对别人下命令,所以他让 Duff 回答他的 qq 个提问,每一个提问包含三个数 vvuuaa

为了回答一个提问:设想一共有 xx 个人居住在从城市 uu 到城市 vv(包含)的路径上,他们的身份号从小到大排序后分别是 p1,p2,...,pxp_1,p_2,...,p_x。如果设 k=min(x,a)k=min(x,a),那么 Duff 应该按顺序告诉 Malek k,p1,p2,...,pkk,p_1,p_2,...,p_k。从另一种说法来说,Malek 想要知道在路径上身份编号前 aa 小的人(或者更少,如果这条路上总共居住的人少于 aa 个)。

Duff 现在非常忙碌,所以她让你来帮助她回答 Malek 的提问。

输入格式

输入的第一行包括 33 个整数,nnmmqq。(1n,m,q1051\le n,m,q\le 10^5

接下来的 n1n-1 行描述了连通城市的道路。每一行包括两个整数 uuvv,表示从城市 uu 到城市 vv 有一条双向道路。(1u,vn,uv1\le u,v\le n, u≠v

接下来的一行包括 mm 个正整数 c1,c2,...,cmc_1,c_2,...,c_mcic_i 表示编号为 ii 的人居住在城市 cic_i 里。(1cin1\le c_i\le n,对于每一个 ii1im1\le i\le m

接下来的 qq 行描述了 Malek 的提问。每一行包括三个正整数 uuvvaa1v,un1\le v,u\le n1a101\le a\le 10,含义见题面)

输出格式

对于每一次提问,输出一行,包括 k,p1,p2,...,pkk,p_1,p_2,...,p_k(含义见题面)。

5 4 5
1 3
1 2
1 4
4 5
2 1 4 3
4 5 6
1 5 2
5 5 10
2 3 3
5 3 1
1 3
2 2 3
0
3 1 2 4
1 2