这道题目就是一道十分简单的模拟(这还用说?)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int flag[1010],a[1010];
int main(){
int i,j,k,n,m,ans=0,del=1,now=0;
scanf("%d%d",&m,&n);
for(i=1;i<=n;i++){
int x;
scanf("%d",&x);
if(flag[x])continue;
flag[x]=1;ans++;now++;
if(now>m){
now--;flag[a[del]]=0;
a[del]=x;del++;
}
else a[now]=x;
if(del>m)del-=m;
}
printf("%d\n",ans);
return 0;
}