第45场周赛第二题
作者:
努力搬砖滴打工人
,
2022-04-03 17:54:12
,
所有人可见
,
阅读 138
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 5e5 + 10, M = 1e6 + 10;
int cnt[M];
int n, k, t;
int a[N];
int main()
{
scanf("%d %d", &n, &k);
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
int st, ed, res = 0;
for(int i = 1, j = 1; i <= n; i++){
//双指针经典用法
if(cnt[a[i]] == 0) t++;
cnt[a[i]]++;
while(j < i && t > k){
if(cnt[a[j]] == 1) t--;
cnt[a[j++]]--;
}
if(res < i - j + 1) st = j, ed = i, res = i - j + 1;
}
cout << st << ' ' << ed;
return 0;
}