#L2691. 「POI2012 R1」约会 Rendezvous

    ID: 3431 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>图结构拓扑排序图的遍历强连通分量树结构最近公共祖先树上倍增DFS序列

「POI2012 R1」约会 Rendezvous

题目描述

译自 POI 2012 Stage 1. 「Rendezvous」

给定一个有 nn 个顶点的有向图,每个顶点有且仅有一条出边。每次询问给出两个顶点 aia_ibib_i,求满足以下条件的 xix_iyiy_i

  1. 从顶点 aia_i 沿出边走 xix_i 步与从顶点 bib_i 沿出边走 yiy_i 步到达的顶点相同。
  2. max(xi,yi)\max(x_i, y_i) 最小。
  3. 满足以上条件的情况下 min(xi,yi)\min(x_i, y_i) 最小。
  4. 如果以上条件没有给出一个唯一的解,则还需要满足 xiyix_i \ge y_i

如果不存在这样的 xix_iyiy_i,则 xi=yi=1x_i = y_i = -1

输入格式

第一行两个正整数 nnkk1n5000001 \le n \le 500\,0001k5000001 \le k \le 500\,000),表示顶点数和询问个数。

接下来一行 nn 个正整数,第 ii 个数表示 ii 号顶点出边指向的顶点。

接下来 kk 行表示询问,每行两个整数 aia_ibib_i

输出格式

对每组询问输出两个整数 xix_iyiy_i

样例

输入:

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

数据范围与提示

对于 40%40\% 的数据,n2000n \le 2000k2000k \le 2000

对于 100%100\% 的数据,1n5000001 \le n \le 500\,0001k5000001 \le k \le 500\,000