#P6001. [CEOI2016] popeala

[CEOI2016] popeala

题目描述

你办了一场比赛,有 nn 个人参加,只有一道题,有 mm 个数据点,标号为 1m1\sim m,每个测试点都有一个分数 aia_i

现在所有选手已经提交了程序并且测评完了,你知道每个人都能通过哪些测试点。

你现在要安排捆绑测试的方式,把数据点划分为若干个连续的区间,每个区间至少有一个测试点。每个区间只要有一个测试点错误就不会得分,如果所有 点都正确得分为所有测试点的分数的和。

你的目的是最小化所有人的得分和。你需要对 1iS1\le i\le S,输出当把所有测试点划分为 ii 组时,最小的所有人分数和。

输入格式

第一行三个整数 n,m,Sn,m,S

接下来一行 mm 个整数,代表 aia_i

接下来 nn 行每行一个长度为 mm0101 串,代表第 ii 个人是否通过了第 jj 个测试点。

输出格式

SS 行,每行一个整数,代表当划分为 ii 个捆绑测试点时所有人分数和的最小值。

2 3 3
4 3 5
101
110
0
8
16

提示

对于 100%100\% 的数据,1n501\le n\le 501m2×1041\le m\le 2\times 10^4Smin(50,m)1ai104S\le \min(50,m),1\le a_i \le 10^4Σai×n2×109\Sigma a_i\times n\le 2\times10^9