题目描述
现在有S 和T 两个长度相同的序列,都是仅由0 和1 构成。
我们想要把S 序列变成T 序列,每次变换我们可以把一个0 变成1,或者把一个1 变成0,第i 个数改变一次所需要的代价是Ci ×D,Ci是题目中已经给出的,跟位置i有关,即我们变换第i 个数的时候使用,D 是当前S 和T 里面不匹配的数字的数量。
显然,不同的变换顺序的代价是不一样的。我们希望求出这个最小的变换代价。
输入
第一行输入一个整数n,表示序列的长度。
第二行有一个长度为n 的序列,表示S 序列,中间有一个空格隔开。
第三行有一个长度为n 的序列,表示T 序列,中间有一个空格隔开。
第四行有n 个整数,表示Ci,整数用一个空格隔开。
输出
输出最小的变换代价。
样例输入
3
1 0 1
1 0 1
1 2 3
样例输出
0
提示
样例输入1
样例输出1
样例输入2
样例输出2
3
1 0 1
1 0 1
1 2 3
0
3
1 0 1
0 1 0
1 2 3
10
样例输入3
样例输出3
10
0 0 1 0 1 0 0 0 0 0
0 1 1 1 1 0 0 1 1 0
72 38 91 18 10 40 90 8 22 21
168
样例2解释:
这里我们先变换第1 个数,花费的代价是C1 ×3 = 3,此时还有3 个数没有匹配好,所以乘以3,然后我们变换第2 个数,花费的代价是C2 × 2 = 4,此时还有2 个数没有匹配好,所以乘以2,然后我们变换第3 个数,花费的代价是C3 × 1 = 3,此
时只有1 个数没有匹配好,所以乘以1,总的代价10,为最小代价。
如果我们换种顺序去变换,比如我们先变换第3 个,再变换第2 个,最后变换第1 个,那么花费的代价就是C3 × 3 + C2 × 2 + C1 × 1 = 14。