/*
#include<stdio.h>
#define MAXSIZE 100
int stack[MAXSIZE] = {0};
int top=0;
void push(int k) {
if(top==MAXSIZE) {
printf("stack is full\n");
return ;
}
stack[top] = k;
top++;
}
int pop() {
int k;
if(top==0) {
printf("stack is empty\n");
return 0;
}
top--;
k = stack[top];
stack[top] = 0;
return k;
}
void scan() {
int i;
for(i=top-1; i>=0; i--) {
printf("%d :> %d\n", i, stack[i]);
}
}
int main() {
int i, n, p;
for(;;) {
printf("1: input, 2 : output, 3 : scan\n");
scanf("%d", &n);
switch(n) {
case 1:
printf("input data : ");
scanf("%d", &p);
push(p);
break;
case 2:
p = pop();
if(p==0);
else
printf("output data is %d\n", p);
break;
case 3:
scan();
break;
default:
printf("error");
break;
}
}
}
*/
/*
#include <stdio.h>
#include <string.h>
char stack[210];
int top=0;
void push(int p){
stack[top]=p;
top++;
return;
}
void pop(){
top--;
}
int main()
{
int i,n,p,a;
char data[2000] = {0};
scanf("%d", &n);
gets(a);
for(i=0; i<n; i++)
{
scanf("%c", &data[i]);
}
for(;;) {
push(data[i]);
scanf("%d", &n);
if(data[i]%3==0) push(',');
}
i=top-1;
if(top!=0){
printf("%c",stack[i]);
i--;
pop();
}
}
*/
#include <stdio.h>
int stack[100000];
int cnt = 0, sum = 0;
void push(int n){
if(cnt<100000){
stack[cnt] = n;
sum += stack[cnt];
cnt++;
}
}
void pop(){
if(cnt!=0){
cnt--;
sum -= stack[cnt];
stack[cnt] = 0;
}
}
int main(){
int n;
scanf("%d", &n);
int arr[n];
for(int i=0; i<n; i++){
scanf("%d", &arr[i]);
if(arr[i] == 0){
pop();
}else{
push(arr[i]);
}
}
printf("%d\n", sum);
}