func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   string s;   long long int a[101];   long long int dp[101][101][101];   long long int f(int start, int end, int l) {     if (start > end) {       return 0;     }     if (start == end) {       return a[l];     }     if (dp[start][end][l] != 0) {       return dp[start][end][l];     }     long long int ans = a[l] + f(start + 1, end, 1);     for (int i = start + 1; i <= end; i++) {       if (s[i] == s[start]) {         ans = max(ans, f(start + 1, i - 1, 1) + f(i, end, l + 1));       }     }     dp[start][end][l] = ans;     return ans;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cin >> n >> s;     for (int i = 1; i <= n; i++) {       cin >> a[i];     }     a[0] = 0;     cout << f(0, n - 1, 1);   }   