#3926. 会合

    ID: 3926 传统题 2000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>树结构最近公共祖先图论基环树LCA算法竞赛进阶指南

会合

题目描述

给定一个 nn 个顶点的有向图,每个顶点有且仅有一条出边。

对于顶点 ii,记它的出边为 (i,a[i]i,a[i])。

再给出 qq 组询问,每组询问由两个顶点 aba、b 组成,要求输出满足下面条件的 xyx、y

  • 从顶点 aa 沿着出边走 xx 步和从顶点b b 沿着出边走 yy 步后到达的顶点相同。
  • 在满足条件 1 的情况下,如果解不唯一,则还需要令 max(x,ymax(x,y) 最小。
  • 在满足条件 1 和 2 的情况下,如果解不唯一,则还需要令 min(x,y)min(x,y) 最小。
  • 在满足条件 1、2 和 3 的情况下,如果解不唯一,则还需要令 xyx≥y

如果不存在满足条件 1 的xy x、y,输出 -1 -1

输入格式

第一行两个正整数 nn q q

第二行n n 个正整数 a[1],a[2],,a[n]a[1],a[2],…,a[n]

下面q q 行,每行两个正整数 a,ba,b,表示一组询问。

输出格式

输出 qq 行,每行两个整数。

样例

12 5
4 3 5 5 1 1 12 12 9 9 7 1
7 2
8 11
1 2
9 10
10 5
2 3
1 2
2 2
0 1
-1 -1

数据范围

n,q500000,a[i]n,a,bnn,q≤500000,a[i]≤n,a,b≤n

来源

  • 算法竞赛进阶指南