#P1552. 逛画展

逛画展

Description

博览馆正在展出由世上最佳的 M 位画家所画的图画,你想到博览馆去看这些才华横溢的大师们的作品。

可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字,l和r,代表他要看展览中的第 l 幅至第 r 幅画(包含 l 和 r)之间的所有图画,而门票的价钱就是一张图画一元。

为了看到更多名师的画,你希望入场后可以看到所有名师的图画(至少各一张)。

但是你想要花费最少,现在你需要编写计算机程序,来求出最小花费的的 l 值和 r 值。

Input Format

第一行是 N 和 M,分别代表博览馆内的图画总数及这些图画是由多少位名师的画所绘画的。

其后的一行包含 N 个数字,它们都介于 1 和 M 之间,代表该位名师的编号。

数据范围:

N<=10^6, M<=2000

Output Format

l和r(l<=r),中间有一个空格,并且题目保证有解,如果多解,输出l最小的.

12 5
2 5 3 1 3 2 4 1 1 5 4 3​
2 7​

Hint

题意分析

N个数里求一个区间[l,r],使得这个区间中含有M个不同的数,要求满足条件下,区间长度要最短.

Source

单调队列