func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long PLUS = -1;   const long long MULT = -2;   string fo;   vector<long long> tmp, whereMULT;   long long i, nr, lo, hi, total, add, crt, j, p, ans;   int main() {     cin >> fo;     fo =  1*  + fo +  *1 ;     for (i = 0; i < fo.size();) {       if (!( 0  <= fo[i] && fo[i] <=  9 )) {         (fo[i] ==  + ) ? tmp.push_back(PLUS) : tmp.push_back(MULT);         i += 1;       }       long long nr = 0;       while ( 0  <= fo[i] && fo[i] <=  9 ) {         nr = nr * 10 + fo[i] -  0 ;         i += 1;       }       tmp.push_back(nr);     }     for (i = 0; i < tmp.size(); ++i)       if (tmp[i] == MULT) whereMULT.push_back(i);     for (i = 0; i < whereMULT.size(); ++i)       for (j = i + 1; j < whereMULT.size(); ++j) {         lo = whereMULT[i] + 1, hi = whereMULT[j] - 1;         crt = 0;         add = tmp[lo];         lo += 1;         p = 0;         while (lo <= hi) {           if (tmp[lo] == MULT) {             lo += 1;             add *= tmp[lo];             lo += 1;           } else {             crt += add;             lo += 1;             add = tmp[lo];             lo += 1;           }         }         crt += add;         lo = 1, hi = tmp.size() - 1;         total = 0, add = 1;         while (lo <= hi) {           if (lo == whereMULT[i]) {             add *= crt;             lo = whereMULT[j];             continue;           }           if (tmp[lo] == MULT) {             lo += 1;             add *= tmp[lo];             lo += 1;           } else {             total += add;             lo += 1;             add = tmp[lo];             lo += 1;           }         }         total += add;         ans = max(ans, total);       }     cout << ans <<   n ;     return 0;   }   