#include <stdio.h>
#define MAXSIZE 4000
int code[MAXSIZE * 2], top; // 1 ~ 4000
// insert x,y,s "x의 위치 바로 다음에 y개의 숫자를 삽입."
void _insert_relocation(int x, int y) {
int i;
for (i = top - 1; i > x; i--)
code[i + y] = code[i];
}
void insert(int x, int y) {
int s;
top += y;
while (y--) {
scanf("%d", &s);
code[x + 1] = s;
x++;
}
}
// x위치 바로 다음부터 y개의 숫자를 삭제
void delet(int x, int y) {
int i;
for (i = 0; i < ((top - 1) - x) - y; i++) {
code[i + x + 1] = code[i + x + 1 + y];
code[i + x + 1 + y] = 0;
}
top -= y;
}
void add(int y) {
insert(top - 1, y);
}
int main()
{
freopen("input.txt", "r", stdin);
int N, tc = 10, count = 0, i, cmdline, x, y;
char cmd;
while (tc--) {
count++;
scanf("%d", &N);
top = N + 1;
for (i = 1; i <= N; i++) {
scanf("%d", &code[i]);
}
scanf("%d", &cmdline);
for (i = 0; i < cmdline; i++) {
scanf(" %c", &cmd);
switch (cmd) {
case 'I':
scanf("%d %d", &x, &y);
_insert_relocation(x, y);
insert(x, y);
break;
case 'D':
scanf("%d %d", &x, &y);
delet(x, y);
break;
case 'A':
scanf("%d", &y);
add(y);
break;
default:
break;
}
}
printf("#%d ", count);
for (i = 1; i <= 10; i++) {
printf("%d ", code[i]);
}printf("\n");
}
return 0;
}
댓글