Closest Equals
题意翻译
现在有一个序列 $a_1, a_2, ..., a_n$ ,还有$m$个查询 $l_j, r_j$ $(1 ≤ l_j ≤ r_j ≤n)$ 。对于每一个查询,请找出距离最近的两个元素 $a_x$ 和 $a_y$$ (x ≠ y)$ ,并且满足以下条件:
$l_j ≤ x, y ≤ r_j$;
$a_x = a_y$。
两个数字的距离是他们下标之差的绝对值 $|x − y|$ 。
题目描述
You are given sequence $ a_{1},a_{2},...,a_{n} $ and $ m $ queries $ l_{j},r_{j} $ ( $ 1<=l_{j}<=r_{j}<=n $ ). For each query you need to print the minimum distance between such pair of elements $ a_{x} $ and $ a_{y} $ ( $ x≠y $ ), that:
- both indexes of the elements lie within range \[ $ l_{j},r_{j} $ \], that is, $ l_{j}<=x,y<=r_{j} $ ;
- the values of the elements are equal, that is $ a_{x}=a_{y} $ .
The text above understands distance as $ |x-y| $ .
输入输出格式
输入格式
The first line of the input contains a pair of integers $ n $ , $ m $ ( $ 1<=n,m<=5·10^{5} $ ) — the length of the sequence and the number of queries, correspondingly.
The second line contains the sequence of integers $ a_{1},a_{2},...,a_{n} $ ( $ -10^{9}<=a_{i}<=10^{9} $ ).
Next $ m $ lines contain the queries, one per line. Each query is given by a pair of numbers $ l_{j},r_{j} $ ( $ 1<=l_{j}<=r_{j}<=n $ ) — the indexes of the query range limits.
输出格式
Print $ m $ integers — the answers to each query. If there is no valid match for some query, please print -1 as an answer to this query.
输入输出样例
输入样例 #1
5 3
1 1 2 3 2
1 5
2 4
3 5
输出样例 #1
1
-1
2
输入样例 #2
6 5
1 2 1 3 2 3
4 6
1 3
2 5
2 4
1 6
输出样例 #2
2
2
3
-1
2