각 비트의 시작값과 목표값, 비용이 주어질 때, 비트 i를 뒤집으면 뒤집은 뒤 값이 1인 모든 비트 비용의 합을 지불한다. 목표 상태에 도달하는 최소 총비용을 구한다.
111번부터 nnn번까지 번호가 붙은 비트 nnn개가 있다. 비트 iii의 처음 값은 000 또는 111인 aia_iai이고, 비용은 cic_ici이다.
연산 한 번은 비트 iii를 하나 골라 그 값을 뒤집는다. 000은 111이 되고, 111은 000이 된다. 이 연산의 가격은 뒤집은 뒤에 값이 111인 모든 비트 jjj의 cjc_jcj를 더한 값이다. 비트 iii가 111이 되었다면 그 비트의 비용 cic_ici도 이 합에 들어간다.
어떤 비트든 원하는 순서로 몇 번이든 연산할 수 있다. 모든 iii에 대해 비트 iii의 값을 bib_ibi로 만드는 가격의 합 중 최솟값을 구하여라.
첫째 줄에 비트의 개수 nnn이 주어진다. (1≤n≤5 0001 \le n \le 5\,0001≤n≤5000)
둘째 줄에 각 비트의 비용 c1,c2,…,cnc_1, c_2, \dots, c_nc1,c2,…,cn이 주어진다. (1≤ci≤1091 \le c_i \le 10^91≤ci≤109)
셋째 줄에 처음 값을 나타내는 길이 nnn짜리 문자열 a1a2…ana_1 a_2 \dots a_na1a2…an이 주어진다.
넷째 줄에 목표 값을 나타내는 길이 nnn짜리 문자열 b1b2…bnb_1 b_2 \dots b_nb1b2…bn이 주어진다.
가격의 합 중 최솟값을 첫째 줄에 출력한다.