#4247. 世界巡回赛决赛(WorldTourFinals)

世界巡回赛决赛(WorldTourFinals)

题目描述

NN 名选手参加的编程比赛世界巡回赛决赛正在进行中,比赛时间已经过半。
这场比赛共有 MM 道题目,第 ii 题的分值 AiA_i50050025002500 之间的 100100 的倍数。
对于每个i=1,,Ni=1,\ldots,N,给出一个字符串 SiS_i 表示选手 ii 已经解决了哪些题目。
SiS_i 是一个长度为 MM 的由 ooxx 组成的字符串,其中 SiS_i 的第 jj 个字符为 oo 表示选手 ii 已经解决了第jj 题,为 xx 表示还没有解决。
这里,没有选手解决了所有题目。
选手 ii 的总分计算为其解决的题目分值之和,再加上 ii 分的奖励分。
现在,对于每个 i=1,,Ni=1,\ldots,N,请回答以下问题:
选手 ii 至少要再解决多少道还未解决的题目,才能让选手 ii 的总分超过其他所有选手目前的总分?
注意,根据题目中的条件和约束,可以证明选手 ii 通过解决所有题目,可以超过其他所有选手目前的总分,因此答案始终是有定义的。

输入格式

从标准输入按以下格式给出:
N MN \ M
A1 A2 AMA_1 \ A_2 \ldots \ A_M
S1S_1
S2S_2
\vdots
SNS_N

输出格式

输出 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 分,超过其他所有选手的总分。

数据范围

  • 2N1002\leq N\leq 100
  • 1M1001\leq M\leq 100
  • 500Ai2500500\leq A_i\leq 2500
  • AiA_i100100 的倍数。
  • SiS_i 是一个长度为 MM 的由 ooxx 组成的字符串。
  • SiS_i 至少包含一个 xx
  • 输入中的所有数值都是整数。

来源

  • AtCoder ABC323C