CF522D Closest Equals
题目描述
给定一个序列 $a_{1},a_{2},...,a_{n}$ 和 $m$ 个询问 $l_{j},r_{j}$($1\le l_{j}\le r_{j}\le n$)。对于每个询问,请输出区间 $[l_{j}, r_{j}]$ 内,值相等且下标不同的两个元素 $a_{x}$ 和 $a_{y}$ 之间的最小距离(即 $|x-y|$),其中:
- 元素的下标均在区间内,即 $l_{j}\le x, y\le r_{j}$;
- 元素的数值相等,即 $a_{x}=a_{y}$。
如果在该区间内没有这样的元素对,请输出 $-1$ 作为该询问的答案。
输入格式
第一行包含两个整数 $n$ 和 $m$($1\le n,m\le 5\cdot 10^{5}$),分别表示序列的长度和询问的数量。
第二行包含 $n$ 个整数,构成序列 $a_{1},a_{2},...,a_{n}$($-10^{9}\le a_{i}\le 10^{9}$)。
接下来的 $m$ 行,每行两个整数 $l_{j}, r_{j}$($1\le l_{j}\le r_{j}\le n$),表示一个询问的区间。
输出格式
输出 $m$ 个整数,对于每个询问输出一个答案。如果该区间不存在满足条件的元素对,输出 $-1$。
说明/提示
由 ChatGPT 5 翻译