CF616D Longest k-Good Segment
题目描述
给定一个包含 $n$ 个整数的数组 $a$。我们称数组 $a$ 中一段连续的一个或多个元素为一个区间。若某个区间中不同数的个数不超过 $k$,则称该区间为 k-good 区间。
请你找到任意一个最长的 k-good 区间。
由于输入输出数据规模可能很大,推荐使用高效的输入输出方式:例如,在 C++ 中优先使用 scanf/printf 而不是 cin/cout,在 Java 中优先使用 BufferedReader/PrintWriter 而不是 Scanner/System.out。
输入格式
第一行包含两个整数 $n,k$($1 \leq k \leq n \leq 5 \cdot 10^{5}$),分别表示数组 $a$ 的元素数量以及参数 $k$。
第二行包含 $n$ 个整数 $a_{i}$($0 \leq a_{i} \leq 10^{6}$),表示数组 $a$ 的各个元素。
输出格式
输出两个整数 $l,r$($1 \leq l \leq r \leq n$),表示某个最长的 k-good 区间的左端点和右端点下标。如果有多个最长的区间,输出其中任意一个均可。数组 $a$ 中的元素从左到右依次编号为 $1$ 到 $n$。
说明/提示
由 ChatGPT 5 翻译