显示代码纯文本
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define MAXS 400005
#define MIDS 200000
using namespace std;
int s, queue[MAXS], cnt, lv;
int lsz = MIDS, rsz = MIDS + 1;
char io, rl;
int main ()
{
freopen ("cline.in", "r", stdin);
freopen ("cline.out", "w", stdout);
scanf ("%d\n", &s);
for (int i = 1; i <= s; i ++)
{
scanf ("%c %c", &io, &rl);
switch (io)
{
case 'A' :
getchar ();
switch (rl)
{
case 'L' :
queue[lsz --] = ++ cnt;
break;
case 'R' :
queue[rsz ++] = ++ cnt;
break;
}
break;
case 'D' :
scanf (" %d", &lv);
if (i != s) getchar ();
switch (rl)
{
case 'L' :
lsz = (lsz + lv > rsz - 1) ? rsz - 1 : lsz + lv;
break;
case 'R' :
rsz = (rsz - lv < lsz + 1) ? lsz + 1 : rsz - lv;
break;
}
break;
}
}
for (int i = lsz + 1; i < rsz; i ++)
printf ("%d\n", queue[i]);
return 0;
}