#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000000
int moto[MAX];
struct node
{
int card;
struct node * next;
struct node * prev;
};
int main(void)
{
int num;
scanf_s("%d", &num);
int imsi;
for (int i = 0; i < num; i++)
{
scanf_s("%d", &imsi);
moto[i] = imsi;
}
struct node * head = malloc(sizeof(struct node));
head->card = 1;
head->next = NULL;
head->prev = NULL;
struct node * tail = head;
for (int i = 2; i <= num; i++)
{
struct node * noder = malloc(sizeof(struct node));
noder->card = i;
switch (moto[num-i]) {
case 1:
head->next = noder;
noder->next = NULL;
noder->prev = head;
head = noder;
if (head->prev->prev == NULL)
head->prev = tail;
break;
case 2:
noder->next = head;
if (head->prev != NULL)
{
head->prev->next = noder;
noder->prev = head->prev;
}
else
{
noder->prev = NULL;
tail = noder;
}
head->prev = noder;
break;
case 3:
tail->prev = noder;
noder->next = tail;
noder->prev = NULL;
tail = noder;
break;
}
}
while (head->prev != NULL)
{
printf("%d ", head->card);
head = head->prev;
}
printf("%d ", head->card);
return 0;
}
//////////////
연결리스트 쓰면 간단한 문제.
근데 다른사람들이 쓴 거 보니 큐로 했더라
'성우리뷰' 카테고리의 다른 글
연산자 끼워넣기 (2) | 2020.08.04 |
---|---|
나는야포켓몬마스타- (3) | 2020.08.04 |
1260)dfs bfs (2) | 2020.07.22 |
2328)임시)런타임에러뜸)그래프의 해시 (2) | 2020.07.21 |
18110) 문제 난이도 매기기 (2) | 2020.07.18 |