DISTMIN


Submit solution

Points: 100
Time limit: 2.0s
Memory limit: 493M

Problem type

Cho một dãy n số nguyên a[1], a[2], . . . , a[n] và m truy vấn l[j] , r[j] (1 ≤ l[j] ≤ r[j] ≤ n). Với mỗi truy vấn, tìm khoảng cách nhỏ nhất |x-y| giữa hai phần tử a[x] và a[y] sao cho:

  • cả hai phần tử đều nằm trong đoạn [l[j] , r[j] ] (l[j] ≤ x, y ≤ r[j] );

  • hai phần tử đều có giá trị bằng nhau (a[x] = a[y])

Dữ liệu

  • Dòng đầu tiên gồm hai số nguyên dương n và m (1 ≤ n, m ≤ 5 • 10^5 ).

  • Dòng thứ hai gồm n số nguyên ai (−10^9 ≤ a[i] ≤ 10^9 ).

  • m dòng tiếp theo gồm các truy vấn, mỗi truy vấn gồm hai số nguyên dương l[i] , r[i] (1 ≤ l[i] ≤ r[i] ≤ n).

Kết quả

  • Gồm m dòng, trong đó dòng thứ i là khoảng cách |x − y| nhỏ nhất tìm được trong truy vấn thứ i. Nếu không có cặp nào thỏa điều kiện thì in ra −1.

Sample Input

5 3
2 2 3 1 3 
3 5
2 4 
1 5

Sample Output

2 
-1
1

Sample Input

6 5 
2 3 2 1 3 1 
1 3 
2 5 
4 6 
1 6
2 4

Sample Output

2 
3 
2 
2
-1

Ràng buộc :

• Subtask 1(20%): 1 ≤ n, m ≤ 100. 
• Subtask 2(20%): 1 ≤ n, m ≤ 1000. 
• Subtask 3(60%): Không có ràng buộc gì thêm.

Comments

There are no comments at the moment.