르블랑은 소환사의 협곡에서 [티모, 소라카, 애쉬, 카사딘, 릴리아] 를 메자이의 영혼약탈자 제물로 바치려고 하고있다.

> 메자이의 영혼약탈자의 최대 스택 크기는 7이며, 최대 스택을 넘어가는 경우 push 하지 않는다.

> 메자이의 영혼약탈자는 상대방을 죽일 경우 죽인 상대의 이름 (문자열)을 push 한다.

> 그러나 르블랑이 죽을경우 스택에 쌓여있는 데이터의 절반만 남는다. 르블랑은 다음과 같은 순서로, 상대방을 죽이고 자신이 죽고, 또 죽이고 죽다가 게임이 종료되었다.

소라카 애쉬 (르블랑) 티모 릴리아 카사딘 (르블랑) 티모 애쉬 소라카 릴리아 티모 애쉬 소라카 릴리아 (르블랑) 카사딘

게임이 끝나기 전 메자이의 영혼약탈자의 상태를 스택에 들어간 순서대로 (pop 아님) 출력해보세요


이게 이번 대학과젠데 밑이 내가짠 코드야


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAX 7
typedef char element;
element stack[MAX];
int top = -1;

int is_empty()
{
    return (top == -1);
}
int is_full() {
    return (top == (MAX - 1));
}

void push(element item) {
    if (is_full()) {
        return;
    }
    else stack[++top] = item;
}
element pop() {
    if (is_empty()) {
        fprintf(stderr, "메자이 0스택\n");
        exit(1);
    }
    else
        return stack[top--];
}
void die() {
    for (int i = 0; i = top / 2; i--) {
        pop();
    }
}
int main(void)
{
    const char 카사딘 = 'a';
    const char 소라카 = 'b';
    const char 애쉬 = 'c';
    const char 티모 = 'd';
    const char 릴리아 = 'e';
    push(소라카);
    push(애쉬);
    die();
    push(티모);
    push(릴리아);
    push(카사딘);
    die();
    push(티모);
    push(애쉬);
    push(소라카);
    push(릴리아);
    push(티모);
    push(애쉬);
    push(소라카);
    push(릴리아);
    die();
    push(카사딘);
    for (int i = 0; i <= top; i++)
        printf("%d\n", stack[i]);
}


이거 실행하면 그냥 bca만 나오는데 뭐가 잘못된거야?