N=int(input()) S=input() A=list(map(int,input().split())) DP=[1<<60]*(2*N+1) DP[0]=0 for j in range(2*N): s=S[j] NDP=[1<<60]*(2*N+1) if s=="(": for i in range(2*N): NDP[i+1]=min(NDP[i+1],DP[i]) for i in range(1,2*N+1): NDP[i-1]=min(NDP[i-1],DP[i]+A[j]) else: for i in range(2*N): NDP[i+1]=min(NDP[i+1],DP[i]+A[j]) for i in range(1,2*N+1): NDP[i-1]=min(NDP[i-1],DP[i]) DP=NDP print(DP[0])