#S2026F5. [CSP-S 2026 模拟二] 平衡采样(balance)

[CSP-S 2026 模拟二] 平衡采样(balance)

题目描述

研究员记录了连续 nn 次采样。第 ii 次采样属于 0 类或 1 类,产生的收益为整数 aia_i,收益可能为负数。

研究员需要选取一个非空连续区间 [l,r][l,r],并要求其中两类采样的出现次数完全相等。在所有符合要求的区间中,最大化收益总和 ∑i=lrai\sum_{i=l}^r a_i。

若不存在符合要求的非空区间,请输出 IMPOSSIBLE。

注意:即使最大收益为负数,也必须输出它;不允许通过选取空区间获得收益 00。

输入格式

第一行一个整数 nn。

第二行一个长度为 nn 的 01 字符串 cc。

第三行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

一个整数,表示最大收益;若无解输出 IMPOSSIBLE。

样例 1

6
010110
3 -7 4 8 -2 5
15

样例解释

选择区间 [3,6][3,6],类型序列为 0110,两类各出现两次;收益为 4+8−2+5=154+8-2+5=15。

数据范围与部分分

保证 1≤n≤2×1051\le n\le2\times10^5,ci∈{0,1}c_i\in\{0,1\},−109≤ai≤109-10^9\le a_i\le10^9。

子任务 分值 特殊限制 测试点
1 20 n≤50n\le50 1–4
2 n≤3000n\le3000 5–8
3 60 无额外限制 9–20

不能将“平衡区间”误认为收益非负的区间。