#include <stdlib.h>
#include <stdio.h>
int postf(char*);
int priority(char);
int main()
{
char in[100];
postf(in);
}
int postf(char* fix) {
int i = 0, top = 0;
char stack[100]={'\0'};
char op;
while(1) {
op=fix[i];
switch(op) {
case '\0':
while(top > 0) {
top--;
}
return 0;
case '(':
if(top<(sizeof(stack) / sizeof(char))) {
top++;
stack[top]=op;
}
break;
case '+':
case '-':
case '*':
case '/':
while(priority(stack[top]) >= priority(op)) {
top--;
}
if(top < (sizeof(stack) / sizeof(char))) {
top++;
stack[top] = op;
}
break;
case ')':
while(stack[top] != '(') {
top--;
}
top--;
break;
default:
break;
}
i++;
}
}
int priority(char op) {
int a;
switch(op) {
case '+':
case '-':
a = 1;
break;
case '*':
case '/':
a = 2;
break;
default:
a = 0;
break;
}
return a;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KaW50IHBvc3RmKGNoYXIqKTsKaW50IHByaW9yaXR5KGNoYXIpOwoKaW50IG1haW4oKQp7CiAgICBjaGFyIGluWzEwMF07CiAgICBzY2FuZigiJXMiLGluKTsKICAgIHBvc3RmKGluKTsKCn0KaW50IHBvc3RmKGNoYXIqIGZpeCkgewogICAgaW50IGkgPSAwLCB0b3AgPSAwOwogICAgY2hhciBzdGFja1sxMDBdPXsnXDAnfTsKICAgIGNoYXIgb3A7CgogICAgd2hpbGUoMSkgewoKICAgICAgICBvcD1maXhbaV07CgogICAgICAgIHN3aXRjaChvcCkgewogICAgICAgICAgICBjYXNlICdcMCc6CgogICAgICAgICAgICAgICAgd2hpbGUodG9wID4gMCkgewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiJWMiLCBzdGFja1t0b3BdKTsKICAgICAgICAgICAgICAgICAgICB0b3AtLTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKCiAgICAgICAgICAgIGNhc2UgJygnOgogICAgICAgICAgICAgICAgaWYodG9wPChzaXplb2Yoc3RhY2spIC8gc2l6ZW9mKGNoYXIpKSkgewogICAgICAgICAgICAgICAgICAgIHRvcCsrOwogICAgICAgICAgICAgICAgICAgIHN0YWNrW3RvcF09b3A7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnKyc6CiAgICAgICAgICAgIGNhc2UgJy0nOgogICAgICAgICAgICBjYXNlICcqJzoKICAgICAgICAgICAgY2FzZSAnLyc6CiAgICAgICAgICAgICAgICB3aGlsZShwcmlvcml0eShzdGFja1t0b3BdKSA+PSBwcmlvcml0eShvcCkpIHsKICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVjIiwgc3RhY2tbdG9wXSk7CiAgICAgICAgICAgICAgICAgICAgdG9wLS07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYodG9wIDwgKHNpemVvZihzdGFjaykgLyBzaXplb2YoY2hhcikpKSB7CiAgICAgICAgICAgICAgICAgICAgdG9wKys7CiAgICAgICAgICAgICAgICAgICAgc3RhY2tbdG9wXSA9IG9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICcpJzoKICAgICAgICAgICAgICAgIHdoaWxlKHN0YWNrW3RvcF0gIT0gJygnKSB7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlYyIsc3RhY2tbdG9wXSk7CiAgICAgICAgICAgICAgICAgICAgdG9wLS07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0b3AtLTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcHJpbnRmKCIlYyIsb3ApOwoKCiAgICAgICAgICAgICAgICBicmVhazsKCn0KCiAgICAgICAgaSsrOwoKCiAgICB9CgoKfQoKaW50IHByaW9yaXR5KGNoYXIgb3ApIHsKICAgIGludCBhOwoKICAgIHN3aXRjaChvcCkgewoKICAgICAgICBjYXNlICcrJzoKICAgICAgICBjYXNlICctJzoKICAgICAgICAgICAgYSA9IDE7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICcqJzoKICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgYSA9IDI7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CgogICAgcmV0dXJuIGE7Cn0K