#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
int data;
struct node *next;
};
int main()
{
int n,m,i,s,j;
char ml[20];
struct node *head,*p,*tail,*q,*r;
head=(struct node*)malloc(sizeof(struct node));
head->next=NULL;
tail=head;
scanf("%d",&n);
for(i=0;i<n;i++)
{
p=(struct node*)malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
tail->next=p;
tail=p;
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%s",ml);
if(strcmp(ml,"JOIN")==0)
{
p=(struct node*)malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
tail->next=p;
tail=p;
}
else if(strcmp(ml,"ASK")==0)
{
scanf("%d",&n);
s=0;
q=head;
while(s<n)
{
q=q->next;
s++;
}
printf("%d\n",q->data);
}
else if(strcmp(ml,"LEAVE")==0)
{
scanf("%d",&n);
r=head;
s=0;
while(s<n-1)
{
r=r->next;
s++;
}
q=r->next;
r->next=q->next;
free(q);
}
else if(strcmp(ml,"LENGTH")==0)
{
s=0;
q=head;
while(q->next!=NULL)
{
s++;
q=q->next;
}
printf("%d\n",s);
}
else if(strcmp(ml,"FINISH")==0)
{
scanf("%d",&n);
for(j=0;j<n;j++)
{
r=head;
q=r->next;
r->next=q->next;
free(q);
}
}
}
return 0;
}
#include <stdlib.h>
#include <string.h>
struct node
{
int data;
struct node *next;
};
int main()
{
int n,m,i,s,j;
char ml[20];
struct node *head,*p,*tail,*q,*r;
head=(struct node*)malloc(sizeof(struct node));
head->next=NULL;
tail=head;
scanf("%d",&n);
for(i=0;i<n;i++)
{
p=(struct node*)malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
tail->next=p;
tail=p;
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%s",ml);
if(strcmp(ml,"JOIN")==0)
{
p=(struct node*)malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
tail->next=p;
tail=p;
}
else if(strcmp(ml,"ASK")==0)
{
scanf("%d",&n);
s=0;
q=head;
while(s<n)
{
q=q->next;
s++;
}
printf("%d\n",q->data);
}
else if(strcmp(ml,"LEAVE")==0)
{
scanf("%d",&n);
r=head;
s=0;
while(s<n-1)
{
r=r->next;
s++;
}
q=r->next;
r->next=q->next;
free(q);
}
else if(strcmp(ml,"LENGTH")==0)
{
s=0;
q=head;
while(q->next!=NULL)
{
s++;
q=q->next;
}
printf("%d\n",s);
}
else if(strcmp(ml,"FINISH")==0)
{
scanf("%d",&n);
for(j=0;j<n;j++)
{
r=head;
q=r->next;
r->next=q->next;
free(q);
}
}
}
return 0;
}