CF587C.Duff in the Army

提高+/省选-

通过率:0%

时间限制:4.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Recently Duff has been a soldier in the army. Malek is her commander.

Their country, Andarz Gu has n cities (numbered from 1 to n) and n - 1 bidirectional roads. Each road connects two different cities. There exist a unique path between any two cities.

There are also m people living in Andarz Gu (numbered from 1 to m). Each person has and ID number. ID number of i - th person is i and he/she lives in city number c__i. Note that there may be more than one person in a city, also there may be no people living in the city.

Malek loves to order. That's why he asks Duff to answer to q queries. In each query, he gives her numbers v, u and a.

To answer a query:

Assume there are x people living in the cities lying on the path from city v to city u. Assume these people's IDs are _p_1, _p_2, ..., p__x in increasing order.

If k = min(x, a), then Duff should tell Malek numbers k, _p_1, _p_2, ..., p__k in this order. In the other words, Malek wants to know a minimums on that path (or less, if there are less than a people).

Duff is very busy at the moment, so she asked you to help her and answer the queries.

最近,达芙(Duff)成为了一名士兵,马莱克(Malek)是她的指挥官。

她们的祖国安达尔兹古(Andarz Gu)共有 nn 座城市(编号从 11 到 nn)以及 n−1n-1 条双向道路。每条道路连接两个不同的城市,且任意两座城市之间都存在唯一的一条路径。

安达尔兹古还有 mm 位居民(编号从 11 到 mm),每人有一个唯一的 ID 号;第 ii 位居民的 ID 号为 ii,居住在城市 cic_i。注意:一座城市中可能有多人居住,也可能无人居住。

马莱克酷爱发号施令,因此他要求达芙回答 qq 个查询。每个查询给出三个数 vv、uu 和 aa。

对于每个查询,回答方式如下:

设位于城市 vv 到城市 uu 的路径上的所有城市中居住的人数为 xx;将这些人的 ID 按升序排列为 p1,p2,…,pxp_1, p_2, \dots, p_x。

令 k=min⁡(x,a)k = \min(x, a),则达芙需向马莱克依次报告 k,p1,p2,…,pkk, p_1, p_2, \dots, p_k。换言之,马莱克希望知道该路径上 ID 最小的 aa 个人(若人数不足 aa,则报告全部)。

达芙此刻非常忙碌,因此她请你帮忙回答这些查询。

输入格式

The first line of input contains three integers, n, m and q (1 ≤ n, m, q ≤ 105).

The next n - 1 lines contain the roads. Each line contains two integers v and u, endpoints of a road (1 ≤ v, u ≤ n, v ≠ u).

Next line contains m integers _c_1, _c_2, ..., c__m separated by spaces (1 ≤ c__i ≤ n for each 1 ≤ i ≤ m).

Next q lines contain the queries. Each of them contains three integers, v, u and a (1 ≤ v, u ≤ n and 1 ≤ a ≤ 10).

输入的第一行包含三个整数 nn、mm 和 qq(1 ≤ n, m, q ≤ 1051 \le n, m, q \le 10^5)。

接下来的 n − 1n - 1 行描述道路。每行包含两个整数 vv 和 uu,表示一条道路的两个端点(1 ≤ v, u ≤ n1 \le v, u \le n,且 v ≠ uv \ne u)。

下一行包含 mm 个整数 c1, c2, ..., cmc_1, c_2, ..., c_m,以空格分隔(对每个 1 ≤ i ≤ m1 \le i \le m,满足 1 ≤ ci ≤ n1 \le c_i \le n)。

接下来的 qq 行为查询。每行包含三个整数 vv、uu 和 aa(1 ≤ v, u ≤ n1 \le v, u \le n,且 1 ≤ a ≤ 101 \le a \le 10)。

输出格式

For each query, print numbers k, _p_1, _p_2, ..., p__k separated by spaces in one line.

对于每个查询,在一行中输出数字 kk、p1p_1、p2p_2、…、pkp_k,以空格分隔。

输入输出样例

  • 输入#1

    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

    1 3
    2 2 3
    0
    3 1 2 4
    1 2

说明/提示

Graph of Andarz Gu in the sample case is as follows (ID of people in each city are written next to them):

样例中的安达尔兹·古图的图如下所示(每个城市中人员的编号写在其旁边):

输入解题思路,AI测评打分。不知道怎么写?

首页