CFCF2181A.Alphabet City

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Al 是 Alphabet City 的一名城市设计师,今天他的任务是为 nn 条城市街道准备招牌。在 Alphabet City,街道标牌仅由街道名称组成,这些名称全都由一模一样的英文字母金属牌印制而成。例如,如果在夜间有人偷偷交换了 NERC 街和 NEF 街招牌上的首字母,第二天没人会发现差别,因为两块牌上的字母 ‘N’ 完全一样。

Al 计划在每条街道上都放置 mm 个招牌,并且他已经从冶金厂为每个街道名称订购了所需数量的铜牌。然而,就在订单到货前一小时,冶金厂的经理打来电话,带来了一个令人沮丧的消息:他们丢失了一个街道名称的订单!为了缓解这个问题,Al 决定暂时为订单未丢失的每条街道尽可能多制作招牌,并用剩下的字母,尝试为丢失订单的那条街道至少制作一个招牌。

具体来说,若街道名称为 s1,,sns_1, \ldots, s_n\ell 表示丢失订单的编号,则 Al 关心的是最大的整数 kk,使得可以用 s1,,s1,s+1,,sns_1, \ldots, s_{\ell-1}, s_{\ell+1}, \ldots, s_nmm 份字母,制作出 s1,,s1,s+1,,sns_1, \ldots, s_{\ell-1}, s_{\ell+1}, \ldots, s_nkk 块招牌,并且还能至少制作一块 ss_\ell 的招牌;或者判定对于所有非负整数 kk,该目标都无法实现。

Al 还不知道丢失的是哪一项。请编写程序,给定 mm 和所有街道名称,对于每个 {1,2,,n}\ell \in \{1, 2, \ldots, n\},输出最大的 kk,若无解则输出 1-1

输入格式

第一行为两个整数 nnmm,分别表示需要制作标牌的街道数量和每条街道最初要制作的招牌数(2n2×1052 \le n \le 2 \times 10^51m5×1051 \le m \le 5 \times 10^5)。接下来的 nn 行每行包含一个字符串 sis_i,表示第 ii 条街道的名称(1si5×1051 \le |s_i| \le 5 \times 10^5)。所有名称均由大写英文字母组成,名称可能会重复。保证所有街道名称的总长度不超过 5×1055 \times 10^5

输出格式

输出 nn 个整数,第 \ell 个整数表示最大整数 kk,使得用 m×s1,,m×s1,m×s+1,,m×snm \times s_1,\ldots,m \times s_{\ell-1},m \times s_{\ell+1},\ldots,m \times s_n 的字母可以拼出 kks1,,s1,s+1,,sns_1,\ldots,s_{\ell-1},s_{\ell+1},\ldots,s_n,并且可以再拼出至少一个 ss_\ell;如果对于该 \ell,任意 k0k \ge 0 都不能满足条件,则输出 1-1

输入输出样例

  • 输入#1

    3 10
    NEERC
    NERC
    NEF

    输出#1

    9 9 -1
首页