n = int(input()) S = input() A = list(map(int, input().split())) inf = 1 << 60 dp = [inf] * (n + 1) dp[0] = 0 for s, a in zip(S, A): if s == "(": u = 0 d = a else: u = a d = 0 ndp = [inf] * (n + 1) for i in range(n): ndp[i] = min(ndp[i], dp[i + 1] + d) ndp[i + 1] = min(ndp[i + 1], dp[i] + u) dp = ndp print(dp[0])