#P16232. [2026保加利亚国家扩展队训练赛]Two Paths两条路径

[2026保加利亚国家扩展队训练赛]Two Paths两条路径

题目描述

可以把铁路网描述为一棵以顶点 11 为根、共有 NN 个顶点的树。

铁路网中共有 KK 条列车线路。每条线路由树上两个顶点之间的简单路径构成。

为了找出最繁忙的铁路区段,需要从给定的 KK 条线路中选择两条,使它们共同经过的树边数量尽可能多。

请输出这个最大公共边数,以及达到该最大值的两条线路编号。

输入格式

第一行包含两个整数 N,KN,K,分别表示树的顶点数和线路数。

第二行包含 N1N-1 个整数:

p2 p3 ... pN

其中 pip_i 是顶点 ii 的父亲。

接下来 KK 行,每行包含两个整数 x,yx,y,表示一条从顶点 xx 到顶点 yy 的简单路径。保证 xyx\ne y

线路按照输入顺序编号为 11KK

输出格式

第一行输出一个整数,表示任意两条线路共同经过的最大边数。

第二行输出两个整数,表示一对达到最大值的线路编号。

若有多组答案,输出任意一组即可。

数据范围

  • 2N,K21052\le N,K\le 2\cdot 10^5

子任务

子任务 分值 依赖子任务 NN KK 额外限制
0 - 样例
1 9 0 102\le 10^2
2 7 0-1 4103\le 4\cdot 10^3 103\le 10^3
3 11 0-2 105\le 10^5
4 12 0-3 5103\le 5\cdot 10^3
5 7 0 5104\le 5\cdot 10^4 树高不超过 2020
6 - 每条线路都是某条根到叶路径的一部分
7 36 0-6
8 11 0-7 2105\le 2\cdot 10^5

样例

样例 1

输入:
4 2
1 2 2
1 3
1 4

输出:
1
2 1

样例 2

输入:
4 2
1 2 3
1 2
3 4

输出:
0
1 2

样例 3

输入:
7 3
1 2 2 4 5 5
1 3
3 7
6 1

输出:
2
2 3

样例 4

输入:
4 3
1 2 3
1 4
4 1
1 4

输出:
3
2 1

样例1示意图