FZU 2091 播放器 题目链接:http://acm.fzu.edu.cn/problem.php?pid=2091
小型模拟水
题目分析:简单无坑,有点绕的地方是,队尾指针自增自减加一减一的问题,只要清楚指针指的到底是哪里,问题就迎刃而解了。
code:
#include<stdio.h>
#include<string.h>
int main()
{
int i,t,n,m,list[10000],point,p;
scanf("%d",&t);
char c[10];
while(t--)
{
scanf("%d%d",&n,&m);
point=1;
list[1]=1;
for(i=0;i<m;i++)
{
scanf("%s",c);
switch(c[1])//单词的第二个字母
{
case 'L':
scanf("%d",&p);
printf("%d\n",p);
if(list[point]!=p)list[++point]=p;
break;
case 'R':
if(point>1)printf("%d\n",list[point-1]),point--;
else printf("1\n");
break;
case 'E':
if(list[point]<n)
{
printf("%d\n",list[point+1]=list[point]+1);
point++;
}
else printf("%d\n",list[point]);
}
}
}
return 0;
}
PS:经队长指点题意,一条过^.^