20分求助
查看原帖
20分求助
965238
Fwio_楼主2023/4/6 20:41
#include<iostream>
#include<cstring>
using namespace std;
int ans;
int n , k;
int a[5009] , h[5009];
inline int read(){
	int x = 0 , f = 1;
	char ch = getchar();
	while(ch < '0' || ch > '9'){
		if(ch == '-') f = -1;
		ch = getchar();
	}
	while(ch >= '0' && ch <= '9'){
		x = (x << 1) + (x << 3) + (ch ^ 48);
		ch = getchar();
	}
	return x * f;
}
inline void print(int x){
	if(x < 0) putchar('-') , x = -x;
	if(x > 9) print(x / 10);
	putchar(x % 10 + '0');
	return ; 
}
int main(){
	n = read() , k = read();
	for(int i = 1;i <= n;i++) a[i] = read();
	if(!k){
		for(int i = 1;i <= n;i++) if(a[i]) ans++;
		cout << ans << endl;
		return 0;
	}
	int l = 1 , r = 2;
	while(r <= n){
		for(int i = l;i <= r;i++) h[a[i]]++;
		int mex = 0;
		while(h[mex]) mex++;
		if(mex == k){
			ans++;
			l = r + 1;
			a[r] = k;
		}
		r++;
		memset(h , 0 , sizeof h);
	}
	print(ans);
	return 0;
}
2023/4/6 20:41
加载中...