#loj2691. 「POI2012 R1」约会 Rendezvous

    ID: 4456 传统题 2500ms 128MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>POI2012倍增并查集最近公共祖先 LCA基环树提高+/省选−

「POI2012 R1」约会 Rendezvous

[AdditionalFile2691.zip](file://AdditionalFile2691.zip?type=additional_file)

#2691. 「POI2012 R1」约会 Rendezvous

标签: 传统 | 时间限制: 2500 ms | 内存限制: 128 MiB |

题目描述

译自 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

ran1.gif

数据范围与提示

对于 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.