WAC392.会合

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

会合

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

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

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

  1. 从顶点 aa 沿着出边走 xx 步和从顶点 bb 沿着出边走 yy 步后到达的顶点相同。
  2. 在满足条件 11 的情况下,如果解不唯一,则还需要令 max(x,y)max(x,y) 最小。
  3. 在满足条件 11 和 22 的情况下,如果解不唯一,则还需要令 min(x,y)min(x,y) 最小。
  4. 在满足条件 1、21、2 和 33 的情况下,如果解不唯一,则还需要令 x≥yx \ge y。

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

输入格式

第一行两个正整数 nn 和 qq。

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

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

输出格式

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

数据范围

n,q≤500000n,q \le 500000,

a[i]≤na[i] \le n,

a,b≤na,b \le n

样例

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

在线编程 IDE

建议全屏模式获得最佳体验