/*
자료 구조
data structure
1. stack 스택 (쌓는거)
2.queue 큐 (선입선출)
6. sort 정렬 + 재귀
7. search 탐색 + 재귀
5. graph 그래프 ( dfs/bfs)+ 스택, 큐, 재귀
3.linked list 연결리스트 (고급) + 포인터+구조체
4. tree 트리 (고급) +포인터+구조체 + 재귀 .. 등등
*/
/*
#include <stdio.h>
#define SIZE 6
int stack[SIZE]={};
int top=-1; // top 마지막 데이터의 위치
void push(int data)
{
//1. full check??
if(top==SIZE-1) return ;
stack[++top]=data;
}
int pop()
{
//empty check??
if(top==-1) return -1;
return stack[top--];
}
int main()
{
int c, data;
while(1)
{
printf("1. push 2. pop 3. view 4. exit>>");
scanf("%d",&c);
if(c==1)
{
printf("insert push data >>");
scanf("%d",&data);
push(data);
}
else if(c==2)
{
int val = pop();
if(val==-1) printf("stack is empty!!\n");
else printf("pop value is %d\n",val);
}
else if(c==3)
{
printf("stack >>");
for(int i=0;i<=top;i++)
{
printf("%d ",stack[i]);
}
printf("\n");
}
else break;
}
//stack의 모든 데이터 pop
// while(top!=-1)
// {
// printf("%d\n",pop());
// }
}
*/
/*
#include <stdio.h>
#include <string.h>
char stack[500]={};
int top=-1;
void push(char data)
{
stack[++top]=data;
}
int main()
{
char str[500]={};
scanf("%s",str);
for(int i=0;str[i]!=0;i++)
{
push(str[i]);
}
while(top!=-1)
{
printf("%c",stack[top--]);
}
}
입력예시1
8
12345678
출력예시1
12,345,678
입력예시2
6
456789
출력예시2
456,789
*/
/*
#include <stdio.h>
#include <string.h>
char stack[300]={};
int top=-1;
void push(char data)
{
stack[++top]=data;
}
int main()
{
char str[201]={};
int n,i,cnt=0;
scanf("%d\n",&n);
scanf("%s",str);
for(i=n-1;i>=0;i--)
{
push(str[i]);
cnt++;
if(cnt%3==0 && i!=0)
push(',');
}
while(top!=-1)
{
printf("%c",stack[top--]);
}
}
*/
#include <stdio.h>
int stack[100000]={};
int top=-1;
int main()
{
int n,i,a,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(a==0)
{
if(top!=-1) top--;
}
else
{
stack[++top]=a;
}
}
while(top!=-1)
{
sum+=stack[top];
top--;
}
printf("%d",sum);
}



