#P2032. 【阿里云研发岗】2025-3-16-第二题-数组权值和(四)

【阿里云研发岗】2025-3-16-第二题-数组权值和(四)

题目描述

ak机有一个长度为nn的数组aa和一个度为n的字符串ss。她最多可以将数组切割成11块。

定义数组的权值为所有元素的权值之和。对于数组中的第11个元素,其权值计算方式为:op(i)×(a+j)op(i)\times (a+j),其中jj表示aia_i所在的块的编号(下标从11开始)

op(i)op(i)的值取决手字符串ss的第ii个字符:

sis_i=11,则op(i)=1op(i)=1

sis_i=00,则op(i)=1op(i)=-1

ak机想要通过合理的切割方式,使得数组的总权值最大,请你帮她计算出可能的最大权值。

输入描述

第一行包含两个正整数n,k(1kn105)n,k(1\le k\le n\le 10^5),表示数组的长度和数组最多的块数。

第二行包含nn个整数a1,a2,...an(1ai109)a_1,a_2,...a_n(1\le a_i\le 10^9),表示数组aa

第三行包含一个长度为nn的字符串ss,仅由字符0011组成

输出描述

输出一个整数。表示数组可能的最大权值。

样例1

输入

4 2
1 2 3 4
1001

输出

1

样例解释

一种最优的切割方案是将数组切成[1,2,3][1,2,3][4][4]两块。对应的权值为$1\times (1+1)+(-1)\times (2+1)+(-1)\times (3+1)+1\times (4+2)=1$