///*
//#include <stdio.h>
//#include <stdlib.h>
//
//int main()
//{
// printf("Hello world!\n");
// return 0;
//}
//*/
//
//#include <stdio.h> //zero 받으면 top 빼버리기
//#define SIZE 100000
//int stack[SIZE];
//int top=-1;
//
//void push(int data)
//{
// if(top==SIZE-1) return;
// stack[++top]=data;
//}
//int pop()
//{
// if(top==-1) return -100;
// return stack[top--];
//}
//
//int main()
//{
// int n,i,sum=0,a[100001]={};
// scanf("%d",&n);
// for(i=1;i<=n;i++)
// {
// scanf("%d",&a[i]);
// }
//
// for(i=1;i<=n;i++)
// {
// push(a[i]);
// }
//
// for(i=1;i<=n;i++)
// {
// if(a[i]==0)
// {
// pop(a[i-1]);
// }
// }
//
// while(top!=-1)
// {
// sum=sum+pop();
// }
//
// printf("%d",&sum);
//
// return 0;
//}
/*
#include<stdio.h>
int main()
{
int stack[100000] = {0}, top=0, i, k, n, sum=0;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &k); ---3117 스택 0은 뺴!
if(k==0)
{
top--;
stack[top] = 0;
}
else
{
stack[top++] = k;
}
}
for(i=0; i<n; i++)
{
//printf("%d\n", stack[i]);
sum=sum+stack[i];
}
printf("%d",sum);
return 0;
}
*/
/*
#include <stdio.h>
#define SIZE 201
int stack[SIZE];
int top=-1;
void push(char data)
{
if(top==SIZE-1) return;
stack[++top]=data;
}
char pop()
{
if(top==-1) return -100;
return stack[top--];
}
int main()
{
char a[201]={};
int i;
gets(a);
for(i=0; i<strlen(a); i++) {
printf("%c\n", a[i]);
}
}
*/
/*
#include <stdio.h>
int memo[10000008];
int rec(int n) ----3709 관계기반 설계 블럭 세우기
{
if(memo[n]!=0) return memo[n];
if(n==1) return 1;
if(n==2) return 2;
return memo[n]=(rec(n-1)%100000007+rec(n-2)%100000007)%100000007;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
return 0;
}
*/
숙제=3713 블럭채우기 3