RT,是不是必须换一种做法啊,还是说可以怎么处理qwq(wtcl
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1e5 + 10;
int n,k,a[MAXN],num = 0,c[MAXN],ans = -1;
int main() {
scanf("%d%d",&n,&k);
for(int i = 1;i <= n;i ++) scanf("%d",&a[i]);
for(int r = 1,l = 1;r <= n;r ++) {
if(! c[a[r]]) num ++;
c[a[r]] ++;
while(num > k + 1 && l <= r && l <= n) {
c[a[l]] --;
if(! c[a[l]]) num --;
l ++;
}ans = max(ans,c[a[r]]);
}
return printf("%d\n",ans),0;
}