luogu#P3533. [POI 2012] RAN-Rendezvous

    ID: 2606 远端评测题 1500ms 256MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>2012倍增POI(波兰)最近公共祖先 LCA基环树

[POI 2012] RAN-Rendezvous

题目描述

译自 POI 2012 Stage 1. 「Rendezvous

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

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

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

输入格式

第一行两个正整数 nnkk1n500 000,1k500 0001 \le n \le 500\ 000,1 \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\% 的数据,n2000,k2000n \le 2000,k \le 2000

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