#include <stdio.h>
int nextval() {
return getchar() - '0';
}
char nextop() {
int c = getchar();
if(c == '\n' || c == EOF)
return '\0';
else
return (char) c;
}
int calculate(int val1, char op, int val2, char op2) {
if(op2 == '\0') { // 연산이 더 없는 경우
if(op == '+') {
return val1 + val2;
} else if(op == '*') {
return val1 * val2;
}
} else {
int nval = nextval();
char nop = nextop();
if(op == '*') { // 순서대로 하면 되는 곱셈
return calculate(val1 * val2, op2, nval, nop);
} else if(op == '+' && op2 == '*') { // 두번째 연산자가 우선순위가 높은 경우
return val1 + calculate(val2, op2, nval, nop);
} else if(op == '+') { // 순서대로 하면 되는 덧셈
return calculate(val1 + val2, op2, nval, nop);
}
}
}
int main() {
int val1 = nextval();
char op1 = nextop();
int val2 = nextval();
char op2 = nextop();
printf("Result: %d\n", calculate(val1, op1, val2, op2));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbmV4dHZhbCgpIHsKCXJldHVybiBnZXRjaGFyKCkgLSAnMCc7Cn0KCmNoYXIgbmV4dG9wKCkgewoJaW50IGMgPSBnZXRjaGFyKCk7CglpZihjID09ICdcbicgfHwgYyA9PSBFT0YpCgkJcmV0dXJuICdcMCc7CgllbHNlCgkJcmV0dXJuIChjaGFyKSBjOwp9CgppbnQgY2FsY3VsYXRlKGludCB2YWwxLCBjaGFyIG9wLCBpbnQgdmFsMiwgY2hhciBvcDIpIHsKCWlmKG9wMiA9PSAnXDAnKSB7IC8vIOyXsOyCsOydtCDrjZQg7JeG64qUIOqyveyasAoJCWlmKG9wID09ICcrJykgewoJCQlyZXR1cm4gdmFsMSArIHZhbDI7CgkJfSBlbHNlIGlmKG9wID09ICcqJykgewoJCQlyZXR1cm4gdmFsMSAqIHZhbDI7CgkJfQoJfSBlbHNlIHsKCQlpbnQgbnZhbCA9IG5leHR2YWwoKTsKCQljaGFyIG5vcCA9IG5leHRvcCgpOwoJCWlmKG9wID09ICcqJykgeyAvLyDsiJzshJzrjIDroZwg7ZWY66m0IOuQmOuKlCDqs7HshYgKCQkJcmV0dXJuIGNhbGN1bGF0ZSh2YWwxICogdmFsMiwgb3AyLCBudmFsLCBub3ApOwoJCX0gZWxzZSBpZihvcCA9PSAnKycgJiYgb3AyID09ICcqJykgeyAvLyDrkZDrsojsp7gg7Jew7IKw7J6Q6rCAIOyasOyEoOyInOychOqwgCDrhpLsnYAg6rK97JqwCgkJCXJldHVybiB2YWwxICsgY2FsY3VsYXRlKHZhbDIsIG9wMiwgbnZhbCwgbm9wKTsKCQl9IGVsc2UgaWYob3AgPT0gJysnKSB7IC8vIOyInOyEnOuMgOuhnCDtlZjrqbQg65CY64qUIOuNp+yFiAoJCQlyZXR1cm4gY2FsY3VsYXRlKHZhbDEgKyB2YWwyLCBvcDIsIG52YWwsIG5vcCk7CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWludCB2YWwxID0gbmV4dHZhbCgpOwoJY2hhciBvcDEgPSBuZXh0b3AoKTsKCWludCB2YWwyID0gbmV4dHZhbCgpOwoJY2hhciBvcDIgPSBuZXh0b3AoKTsKCXByaW50ZigiUmVzdWx0OiAlZFxuIiwgY2FsY3VsYXRlKHZhbDEsIG9wMSwgdmFsMiwgb3AyKSk7CglyZXR1cm4gMDsKfQ==