from collections import defaultdict as ddict import sys sys.setrecursionlimit(100000) def dfs(now, pre): ret = [0, 0, 0] for nxt in G[now]: if nxt == pre: continue child = dfs(nxt, now) for i in range(3): ret[i] += child[i] if s[now] == 'c': ret[2] += ret[1] else: ret[1] += ret[0] ret[0] += 1 return ret ################################# N = int(input()) s = input() G = ddict(list) for i in range(N - 1): a, b = list(map(int, input().split())) a -= 1; b -= 1 G[a].append(b) G[b].append(a) ans = 0 for i in range(N): if s[i] == 'c': ans += dfs(i, -1)[2] print(ans)