/*
#include<stdio.h>
#include<string.h>
int p1=0,p2=0,k=0;
void put(char data)
{
if(data=='(')
{
p1++;
}
else
{
p2++;
}
}
void out(char data)
{
if(data==')' && p1!=0)
{
k+=2;
p1--;
}
else if(data==']' && p2!=0)
{
k+=3;
p2--;
}
}
int main()
{
char str[30];
int i;
scanf("%s",str);
for(i=0;i<strlen(str);i++)
{
if(str[i]=='(' || str[i]=='[')
{
put(str[i]);
}
else if(str[i]==')' || str[i]==']')
{
out(str[i]);
}
}
if(p1==0 && p2==0)
{
printf("%d",k);
}
}
*/
/* basic queue
#include<stdio.h>
#define SIZE 5
int queue[SIZE]={};
int front=-1,rear=-1;
void enqueue(int data)
{
if(front==SIZE-1)
{
printf("queue is full\n");
return ;
}
queue[++front]=data;
}
int dequeue()
{
if(front==rear)
{
printf("queue is empty\n");
return ;
}
printf("%d\n",queue[++rear]);
queue[rear]=0;
}
void show()
{
for(int i=rear+1;i<=front;i++)
{
printf("%d ",queue[i]);
}
printf("\n");
}
*/
/*
//advanced circular queue
#include<stdio.h>
#define SIZE 5
int queue[SIZE]={};
int front=0,rear=0;
void enqueue(int data)
{
if((rear+1)%SIZE==front)
{
printf("queue is full\n");
return ;
}
rear=(++rear)%SIZE;
queue[rear]=data;//
}
int dequeue()
{
if(front==rear)
{
printf("queue is empty\n");
return ;
}
front=(++front)%SIZE;
printf("%d\n",queue[front]);//
queue[front]=0;
}
void show()
{
printf("INDEX : ");
for(int i=0;i<SIZE;i++)
{
printf("%2d ",i);
}
printf("\n");
printf(" DATA : ");
for(int i=0;i<SIZE;i++)
{
printf("%2d ",queue[i]);
}
printf("\n");
}
void f()
{
printf("front = %d\nrear = %d\n",front,rear);
}
int main()
{
int n,k;
for(;;)
{
printf("1.enq 2.deq 3.show 4.front,rear>>");
scanf("%d",&n);
if(n==1)
{
printf("data >>");
scanf("%d",&k);
enqueue(k);
}
else if(n==2)
{
dequeue();
}
else if(n==3)
{
show();
}
else if(n==4)
{
f();
}
}
return 0;
}
*/
#include<stdio.h>
#include<string.h>
char stack[31]={};
int top=0;
void push(char str)
{
stack[top++]=str;
}
char pop()
{
return stack[--top];
}
int main()
{
char str[31]={};
int i,sum=0;
char a, b;
scanf("%s",str);
for(i=0;i<strlen(str);i++)
{
if(str[i]=='(' || str[i]=='[')
{
push(str[i]);
}
else if(str[i]==')' || str[i]==']')
{
b=pop();
if(b=='(')
{
sum=2;
}
else if(b=='[')
{
sum=3;
}
push(sum);
printf("%d\n",sum);
sum=0;
}
}
for(i=top-1;i>=0;i--)
{
printf("%d\n",stack[i]);
}
}
#include<stdio.h>
#include<string.h>
int stack[31]= {};
int top=0;
void push(char str)
{
stack[top++]=str;
}
char pop()
{
return stack[--top];
}
int main()
{
char str[31]= {};
int i,sum=0,a, b;
scanf("%s",str);
for(i=0; i<strlen(str); i++)
{
if(str[i]=='(' || str[i]=='[')
{
push(str[i]-41);
}
else
{
for(;;)
{
b=pop();
if(b==-1)
{
sum*=2;
break;
}
else if(b==-2)
{
sum*=3;
break;
}
else
{
sum=sum+b;
}
}
push(sum);
printf("%d\n",sum);
sum=0;
}
}
for(i=top-1; i>=0; i--)
{
printf("%d\n",stack[i]);
}
}