#M260236. 后缀翻转

后缀翻转

题目描述

小 Z 手上有个长度为 nn 的只包含 0,1的字符串 SS,目标是让字符串变成单调不降(即所有 00 都在 11 之前,也可全为 0011)。

字符串的每个位置都可以进行任意次后缀翻转的操作,如选择位置 ii,则将 ini\sim n 的每一个位置都进行零一翻转互换,每次需花费相应的代价 aia_i

询问完成要求的最小代价。

输入格式

第一行,11 个正整数 nn

第二行,长度为 nn 的字符串 SS

第三行,nn 个正整数 aia_i,表示每个位置 ii 进行后缀翻转的代价。

输出格式

11 个整数,表示最后成为单调不降字符串的最小花费。

输入输出样例

3
010
2 1 3
1

样例 #1\tt \#1说明

  • 在位置 22 进行一次后缀翻转成为 001 即可,花费为 11
3
001
2 1 3
0

数据范围

  • 对于 60%60\% 的数据,n103n\le 10^3
  • 对于 100%100\% 的数据,1n2×105,1ai109,Si0,11\le n\le 2\times10^5,1\le a_i\le 10^9,S_i∈{0,1}