http://acm.jlu.edu.cn/joj/showproblem.php?pid=2652 如果用数组模拟指针会更省时 #include<stdio.h> #include<memory.h> #define N 1000030 int a[N]; int main(){ int i,j,t,n,m,flag; char ch; while(scanf("%d%d",&n,&m)!=EOF,n){ memset(a,0,sizeof(a)); getchar(); for(i=0;i<m;i++){ ch=getchar(); scanf("%d",&t); getchar(); switch(ch){ case 'M':{a[t]=1;break;} case 'S':{ flag=0; for(j=t;j<n;j++){ if(a[j]==0) {printf("%d/n",j);flag=1;break;} } if(!flag) printf("-1/n"); } } } } return 0; }