N = int(input()) S = input() A = list(map(int,input().split())) inf = 10 ** 20 dp = [[inf] * (N + 1) for _ in range(2 * N + 1)] dp[0][0] = 0 for i in range(N + N): for j in range(N + 1): if S[i] == "(": if j < N: dp[i + 1][j + 1] = min(dp[i + 1][j + 1],dp[i][j]) if j > 0: dp[i + 1][j - 1] = min(dp[i + 1][j - 1],dp[i][j] + A[i]) else: if j > 0: dp[i + 1][j - 1] = min(dp[i + 1][j - 1],dp[i][j]) if j < N: dp[i + 1][j + 1] = min(dp[i + 1][j + 1],dp[i][j] + A[i]) print(dp[-1][0])