给定两个由0与1组成的长度均为N的序列S和T,通过不断改变S[i]的值的操作(0改为1或者1改为0),使得序列S与序列T相同。
定义改变S[i]的值的花费为D*C[i],其中D是在此操作之前,序列中满足S[j]≠T[j]的j的个数(1<=j<=N)。C[i]表示对i位置进行变换的代价。
对于一个固定长度N,共有2^N*2^N对由01组成的序列(S,T),计算所有f(S,T)的总和,并输出它对10^9+7取模的结果。f(S,T)是某个序列(S,T)经过操作后所需要的最少的花费。
数据范围:1<N<=2*10^5,1<=C[i]<=10^9