我维护了一个队列,可只得了40分,大佬们帮忙看看
#include<iostream>
using namespace std;
int a[1001];
int main(){
int m,n,head=1,tail=1,ans=0;
cin>>m>>n;//m:内存,n:文章长度
for(int i=1;i<=n;i++){
int c;
cin>>c;
bool p=false;
for(int i=head;i<tail;i++)//查询内存里有没有
if(a[i]==c){
p=true;
break;
}
if(p==false){ //如果内存没有则查找外存
if(tail-head>m){ //如果内存不够
head++; //扔掉最早进入内存的那个单词
}
ans++; //查找外存
a[tail]=c;
tail++; //存放新单词
}
}
cout<<ans;
return 0;
}