#include<stdio.h>
#include<string.h>
#define stacksize 100010
#define ok 1
#define true 1
#define fales 0
int flag;
typedef char elemtype;
typedef int status;
typedef struct
{
elemtype date[110];
int top;
} seqstack;
void initstack(seqstack *s)
{
(*s).top = 0;
}
status stackfull(seqstack s)
{
if(s.top == stacksize) return fales;
return true;
}
void push(seqstack *s, elemtype p)
{
if(!stackfull(*s))
{
printf("F\n");
}
else
{
(*s).date[(*s).top] = p;
(*s).top++;
}
}
status stackempty(seqstack s)
{
if(s.top == 0) return fales;
return true;
}
status pop(seqstack *s, elemtype *p)
{
if(!stackempty(*s)) return fales;
(*s).top--;
*p = (*s).date[(*s).top];
return true;
}
int main()
{
char a[100010], p;
int n, i;
gets(a);
n = strlen(a);
seqstack s;
initstack(&s);
for(i = 0; i < n; i++)
{
if(a[i] >= 'a' && a[i] <= 'z')
{
printf("%c", a[i]);
}
if(a[i] == '(')
{
push(&s, a[i]);
}
if(a[i] == ')')
{
while(s.date[s.top-1] != '(')
{
pop(&s, &p);
printf("%c", p);
}
pop(&s, &p);
}
if(a[i] == '+' || a[i] == '-')
{
while(s.date[s.top-1] != '(' && stackempty(s))
{
pop(&s, &p);
printf("%c", p);
}
push(&s, a[i]);
}
if(a[i] == '*' || a[i] == '/')
{
if(s.date[s.top-1] == '*' ||s.date[s.top-1] == '/')
{
pop(&s, &p);
printf("%c", p);
}
push(&s, a[i]);
}
if(a[i] == '#')
{
break;
}
}
while(stackempty(s))
{
pop(&s, &p);
printf("%c", p);
}
return 0;
}#include<stdio.h>
#include<string.h>
#define st