func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e6;   int t, tot, type[N];   long long r, f[N];   vector<int> son[N];   template <class T>   inline void read(T &x) {     x = 0;     char ch = getchar(), w = 0;     while (!isdigit(ch)) w = ch ==  - , ch = getchar();     while (isdigit(ch)) x = (x << 1) + (x << 3) + (ch ^ 48), ch = getchar();     x = w ? -x : x;     return;   }   inline char getch() {     char c = getchar();     while (c ==    ) c = getchar();     return c;   }   int solve(int fa) {     char c = getch();     int now = ++tot;     type[now] = 0, son[now].clear();     if (c ==  * ) return f[now] = 1, now;     son[now].push_back(solve(now));     while (1) {       c = getch();       if (c ==  S )         type[now] = 1;       else if (c ==  P )         type[now] = 2;       else         break;       son[now].push_back(solve(now));     }     if (type[now] == 1) {       f[now] = 1e18;       for (auto &v : son[now]) f[now] = min(f[v], f[now]);     } else {       f[now] = 0;       for (auto &v : son[now]) f[now] += f[v];     }     return now;   }   void resolve(int now, long long r) {     if (type[now] == 0) {       printf( %lld  , r);       return;     }     if (type[now] == 1) {       int pos = 0;       long long minV = 1e18;       for (auto &k : son[now])         if (f[k] < minV) minV = f[k], pos = k;       for (auto &k : son[now]) resolve(k, pos == k ? r : 0);       return;     }     for (auto &k : son[now]) resolve(k, r);     return;   }   int main() {     read(t);     while (t--) {       read(r), tot = 0;       int root = solve(0);       printf( REVOLTING  );       resolve(root, r * f[root]);       printf(  n );     }     return 0;   }   