CF616D.Longest k-Good Segment

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The array aa with nn integers is given. Let's call the sequence of one or more consecutive elements in aa segment. Also let's call the segment k-good if it contains no more than kk different values.

Find any longest k-good segment.

As the input/output can reach huge size it is recommended to use fast input/output methods: for example, prefer to use scanf/printf instead of cin/cout in C++, prefer to use BufferedReader/PrintWriter instead of Scanner/System.out in Java.

输入格式

The first line contains two integers n,kn,k ( 1<=k<=n<=51051<=k<=n<=5·10^{5} ) — the number of elements in aa and the parameter kk .

The second line contains nn integers aia_{i} ( 0<=ai<=1060<=a_{i}<=10^{6} ) — the elements of the array aa .

输出格式

Print two integers l,rl,r ( 1<=l<=r<=n1<=l<=r<=n ) — the index of the left and the index of the right ends of some k-good longest segment. If there are several longest segments you can print any of them. The elements in aa are numbered from 11 to nn from left to right.

输入输出样例

  • 输入#1

    5 5
    1 2 3 4 5
    

    输出#1

    1 5
    
  • 输入#2

    9 3
    6 5 1 2 3 2 1 4 5
    

    输出#2

    3 7
    
  • 输入#3

    3 1
    1 2 3
    

    输出#3

    1 1
    
首页