洛谷 P1540 机器翻译
程序员文章站
2024-03-24 13:50:52
...
#include<stdio.h>
#define max 1100 //一开始没有看清题目,申请110个数组空间
int que[max];
int j = 0;
int enqueue(int a,int m){
int i;
if(j < m){
que[j++] = a;
}
else if(j >= m-1){
for(i = 1;i < m;i++){
que[i-1] = que[i];
}
que[m-1] = a;
}
}
int find(int a,int m){
int i;
for(i = 0;i < m;i++){
if(que[i] == a) return 1;
}
return 0;
}
int main()
{
int m,n,i,a[max],cnt = 0;
scanf("%d %d",&m,&n);
for(i = 0;i < n;i++){
scanf("%d",&a[i]);
}
for(i = 0;i < m;i++){
que[i] = -1;//非负数表示单词的类型,一开始没有初始化队列的数组导致,有四个样例没过;后来初始化为0;还有一个样例没过,因为单词类型可能是0,题目说是非负。
}
for(i = 0;i < n;i++){
if( find(a[i],m) == 0){
cnt++;
enqueue(a[i],m);
}
}
printf("%d",cnt);
return 0;
}