#ABC323C. [ABC323C] World Tour Finals

    ID: 2614 Type: Default 1000ms 256MiB Tried: 1 Accepted: 1 Difficulty: 5 Uploaded By: Tags>模拟算法基础ABC入门算法闯关排序问题

[ABC323C] World Tour Finals

题目背景

翻译自「AtCoder ABC323C」

题目描述

NN 名选手参加的编程比赛世界巡回赛决赛正在进行中,比赛时间已经过半。

这场比赛共有 MM 道题目,第 ii 题的分值 AiA_i50050025002500 之间的 100100 的倍数。

对于每个 i=1,,Ni=1,\cdots,N, 给出一个字符串 SiS_i 表示选手 ii 已经解决了哪些题目。

SiS_i​ 是一个长度为 MM 的由 ox 组成的字符串,其中 SiS_i 的第 jj 个字符为 o 表示选手 i 已经解决了第 j 题,为 x 表示还没有解决。

这里,没有选手解决了所有题目。

选手 ii 的总分计算为其解决的题目分值之和,再加上 ii 分的奖励分。

现在,对于每个 i=1,,Ni=1,\cdots,N,请回答以下问题:

选手 ii 至少要再解决多少道还未解决的题目,才能让选手 ii 的总分超过其他所有选手目前的总分?

注意,根据题目中的条件和约束,可以证明选手 ii 通过解决所有题目,可以超过其他所有选手目前的总分,因此答案始终是有定义的。

输入格式

第一行输入两个整数 NNMM

第二行输入 MM 个整数 A1,A2,,AMA_1,A_2,\cdots,A_M

接下来有 NN 行,每行输入一个字符串 SiS_i

输出格式

输出 NN 行。第 ii 行应包含对选手 ii 的问题的答案。

样例

3 4
1000 500 700 2000
xxxo
ooxx
oxox
0
1
1
5 5
1000 1500 2000 2000 2500
xxxxx
oxxxx
xxxxx
oxxxx
oxxxx
1
1
1
1
0
7 8
500 500 500 500 500 500 500 500
xxxxxxxx
oxxxxxxx
ooxxxxxx
oooxxxxx
ooooxxxx
oooooxxx
ooooooxx
7
6
5
4
3
2
0

说明/提示

样例 1 解释

在比赛时间过半时,各选手的总分为:选手 1120012001 分,选手 2215021502 分,选手 3317031703 分。

选手 11 已经领先于其他所有选手的总分,不需要再解决任何题目。

选手 22 可以解决第 44 题,总分将达到 35023502 分,超过其他所有选手的总分。

选手 33 也可以解决第 44 题,总分将达到 37033703 分,超过其他所有选手的总分。

数据范围

2N100,1M100,500Ai25002\le N\le 100,1\le M\le 100,500 \le A_i \le 2500,且 AiA_i100100 的倍数。

SiS_i 是一个长度为 MM 的由 ox 组成的字符串,SiS_i 至少包含一个 x