Pagini recente » Cod sursa (job #864601) | Cod sursa (job #1099024) | Cod sursa (job #2941154) | Cod sursa (job #2516461) | Cod sursa (job #1060591)
#include<cstdio>
using namespace std;
struct ura
{
int info;
ura *next;
ura(){info=0;next=NULL;}
ura(int a){info=a,next=NULL;}
};
ura *s=new ura();
void push_stack(ura **s,int val)
{
ura *x=new ura(val);
x->next=*s;
(*s)=x;
};
void *pop_stack(ura **s)
{
ura*x=*s;
(*s)=(*s)->next;
return x;
};
int main()
{
freopen("editor.in","r",stdin);
freopen("editor.out","w",stdout);
int n,ok,add=0;
char ch;
scanf("%d\n", &n);
while(s!=NULL)
pop_stack(&s);
for(int i=1; i<=n; i++)
{
ok=1;
add=0;
scanf("%c",&ch);
while(ch!='\n')
{
if(ch=='[' || ch=='(' )
{
push_stack(&s,ch);
add=1;
}
if(ch==']' || ch==')' )
{
if(ch==']')
if(s->info=='[')
if(s!=NULL)
pop_stack(&s);
else
ok=0;
else
if(ch==')')
if(s->info=='(')
if(s!=NULL)
pop_stack(&s);
else
ok=0;
}
if(ch=='*')
{
if(s!=NULL)
pop_stack(&s);
if(add==1)
ok=0;
}
if(ch=='E')
if(s==NULL && ok==1)
printf(":)\n");
else
printf(":(\n");
scanf("%c",&ch);
}
while(s!=NULL)
pop_stack(&s);
}
return 0;
}