func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 100010;   int N, M;   int ar[MAXN];   char s[MAXN];   int dn[MAXN][2];   int used[MAXN][2];   int f(int k, int flag) {     if (k == -1) return 0;     if (used[k][flag]) return dn[k][flag];     used[k][flag] = 1;     if (!flag) return dn[k][flag] = f(k - 1, 0) + ar[k];     if (s[k] ==  0 ) return dn[k][flag] = f(k - 1, 1);     if (s[k] ==  1 ) return dn[k][flag] = max(f(k - 1, 1) + ar[k], f(k - 1, 0));   }   int main() {     cin >> N;     for (int i = 0; i < N; i++) scanf(  %d , &ar[i]);     scanf(  %s , s);     cout << f(N - 1, 1) << endl;     return 0;   }   