#include int getLetterValue(char letter, int n, char *letters, int *values) { for (int i = 0; i < n; i++) { if (letters[i] == letter) return values[i]; } return 0; } int calculate(char *str, int n, char *letters, int *values) { if (str[1] == '\0') return getLetterValue(str[0], n, letters, values); int sum = 0, prod = getLetterValue(str[0], n, letters, values); for (int i = 1; str[i] != '\0'; i++) { if (str[i] == '+') { sum += prod; prod = 1; } else if (str[i] != '.') prod *= getLetterValue(str[i], n, letters, values); } sum += prod; return sum; } int main() { char str[] = "a.b+b.c+d+a.c"; char letters[] = { 'a', 'b', 'c', 'd' }; int values[] = { 2 , 5 , 3 , 42 }; std::cout << calculate(str, 4, letters, values) << std::endl;; char str1[] = "h.e.l.l.o+w.o.r.l.d"; char letters1[] = { 'd', 'e', 'h', 'l', 'o', 'r' }; int values1[] = { 3 , 2 , 3 , 1 , 5 , 10 }; std::cout << calculate(str1, 6, letters1, values1) << std::endl; }