给定一个长度为 的序列
和一个大数
。
其中 用一个长度为
的
串
形式读入,其中
表示
二进制表示下从低到高的第
位。
现在要使用任意次操作,将一个初始为 的数
变成
,一次操作为下列两种之一:
- 将 从低到高第
位二进制位
翻转,代价为
。
- 将 乘二,代价为常数
。
求达成目的的最小代价。
输入共四行;
第一行一个整数;
第二行一个长度为的下标从
开始的整数序列
,整数之间用空格隔开;
第三行一个整数;
第四行一个长度为的下标从
开始的
串
。
一个整数表示最小代价
。