编号范围过大RE了怎么办
查看原帖
编号范围过大RE了怎么办
262066
InBlue楼主2021/7/9 07:48

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;
}
2021/7/9 07:48
加载中...