#include <iostream>
#include <vector>
using namespace std;
bool isNumber(const std::string& str) {
for (char c : str) {
if (c - '0' > 9 || c - '0' < 0) return false;
}
return true;
}
int getMatchingBrace(const std::string& str) {
int i = 1;
int braces = 1;
while (braces && i < str.size()) {
if (str[i] == '(') braces++;
if (str[i] == ')') braces--;
i++;
}
return i-1;
}
int eval_op(char op, int first, int second) {
if (op == '+') return first + second;
return first * second;
}
int eval(const std::string& str) {
if (isNumber(str)) return std::atoi(str.c_str());
std::vector<std::string> expressions;
int cur_expr_start = 4;
for (int pos = 4; pos < getMatchingBrace(str); pos++) {
if (str[pos] == ' ') {
expressions.push_back(str.substr(cur_expr_start, pos));
cur_expr_start = pos;
}
}
std::cout << expressions[0] << std::endl;
int result = 0;//eval(expressions[0]);
std::cout << str[2] << std::endl;
for (int i = 1; i < expressions.size(); i++) {
std::cout << expressions[i] << std::endl;
//result = eval_op(str[2], result, eval(expressions[i]));
}
return result;
}
int main() {
eval("( + 1 1 )");
//std::cout << eval("( + 1 1 )") << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc051bWJlcihjb25zdCBzdGQ6OnN0cmluZyYgc3RyKSB7Cglmb3IgKGNoYXIgYyA6IHN0cikgewoJCWlmIChjIC0gJzAnID4gOSB8fCBjIC0gJzAnIDwgMCkgcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIHRydWU7Cn0KCmludCBnZXRNYXRjaGluZ0JyYWNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKCWludCBpID0gMTsKCWludCBicmFjZXMgPSAxOwoJd2hpbGUgKGJyYWNlcyAmJiBpIDwgc3RyLnNpemUoKSkgewoJCWlmIChzdHJbaV0gPT0gJygnKSBicmFjZXMrKzsKCQlpZiAoc3RyW2ldID09ICcpJykgYnJhY2VzLS07CgkJaSsrOwoJfQoJcmV0dXJuIGktMTsKfQoKaW50IGV2YWxfb3AoY2hhciBvcCwgaW50IGZpcnN0LCBpbnQgc2Vjb25kKSB7CglpZiAob3AgPT0gJysnKSByZXR1cm4gZmlyc3QgKyBzZWNvbmQ7CglyZXR1cm4gZmlyc3QgKiBzZWNvbmQ7Cn0KCmludCBldmFsKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKCWlmIChpc051bWJlcihzdHIpKSByZXR1cm4gc3RkOjphdG9pKHN0ci5jX3N0cigpKTsKCXN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBleHByZXNzaW9uczsKCWludCBjdXJfZXhwcl9zdGFydCA9IDQ7Cglmb3IgKGludCBwb3MgPSA0OyBwb3MgPCBnZXRNYXRjaGluZ0JyYWNlKHN0cik7IHBvcysrKSB7CgkJaWYgKHN0cltwb3NdID09ICcgJykgewoJCQlleHByZXNzaW9ucy5wdXNoX2JhY2soc3RyLnN1YnN0cihjdXJfZXhwcl9zdGFydCwgcG9zKSk7CgkJCWN1cl9leHByX3N0YXJ0ID0gcG9zOwoJCX0KCX0KCXN0ZDo6Y291dCA8PCBleHByZXNzaW9uc1swXSA8PCBzdGQ6OmVuZGw7CglpbnQgcmVzdWx0ID0gMDsvL2V2YWwoZXhwcmVzc2lvbnNbMF0pOwoJc3RkOjpjb3V0IDw8IHN0clsyXSA8PCBzdGQ6OmVuZGw7Cglmb3IgKGludCBpID0gMTsgaSA8IGV4cHJlc3Npb25zLnNpemUoKTsgaSsrKSB7CgkJc3RkOjpjb3V0IDw8IGV4cHJlc3Npb25zW2ldIDw8IHN0ZDo6ZW5kbDsKCQkvL3Jlc3VsdCA9IGV2YWxfb3Aoc3RyWzJdLCByZXN1bHQsIGV2YWwoZXhwcmVzc2lvbnNbaV0pKTsKCX0KCXJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkgewoJZXZhbCgiKCArIDEgMSApIik7CgkvL3N0ZDo6Y291dCA8PCBldmFsKCIoICsgMSAxICkiKSA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==