CF2068F.Mascot Naming

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

在筹办大型活动时,组织者常需处理专业领域外的琐事。例如,EUC 2025 的主裁判需要为官方吉祥物命名,并满足以下条件:

  • 名称必须包含特定单词作为子序列*^{\texttt{*}},例如活动名称和举办地。给定必须包含的 nn 个单词列表 s1,s2,…,sns_1, s_2, \ldots, s_n。
  • 名称不得包含去年吉祥物名称 tt 作为子序列*^{\texttt{*}}。

请帮助主裁判找到有效的吉祥物名称,或判定其不存在。
*^{\texttt{*}} 若字符串 xx 可通过删除字符串 yy 中若干字符(不改变剩余字符顺序)得到,则称 xx 是 yy 的子序列。例如,abc\texttt{abc} 是 axbycz\texttt{axbycz} 的子序列,但不是 acbxyz\texttt{acbxyz} 的子序列。

输入格式

第一行包含整数 nn(1≤n≤200 0001 \le n \le 200\,000)——必须作为子序列出现的单词数量。

接下来 nn 行中,第 ii 行包含字符串 sis_i(1≤∣si∣≤200 0001 \le |s_i| \le 200\,000,仅含小写字母)——必须作为子序列出现的第 ii 个单词。所有 sis_i 的总长度不超过 200 000200\,000,即 ∣s1∣+∣s2∣+⋯+∣sn∣≤200 000|s_1| + |s_2| + \cdots + |s_n| \le 200\,000。

最后一行包含字符串 tt(1≤∣t∣≤200 0001 \le |t| \le 200\,000,仅含小写字母)——去年吉祥物的名称。

输出格式

若存在有效名称,输出 YES\texttt{YES},否则输出 NO\texttt{NO}。

若存在有效名称,在第二行输出一个有效名称。输出的字符串长度不得超过 1 000 0001\,000\,000 且仅含小写字母。可以证明,若存在有效名称,则必存在满足此额外约束的解。

若有多个解,输出任意一个即可。

输入输出样例

  • 输入#1

    2
    porto
    euc
    prague

    输出#1

    YES
    poretuco
  • 输入#2

    6
    credit
    debit
    money
    rich
    bank
    capitalism
    trap

    输出#2

    YES
    moncrdebditeychankpitalism
  • 输入#3

    2
    axiom
    choice
    io

    输出#3

    NO
  • 输入#4

    4
    aaa
    aab
    abb
    bbb
    ba

    输出#4

    YES
    aaabbb

说明/提示

第一个样例中,必须作为子序列的单词是 porto\texttt{porto} 和 euc\texttt{euc},而禁止作为子序列的单词是 prague\texttt{prague}。存在多个有效名称,例如 poretuco\texttt{poretuco} 或 xxxpppeortoucyyyy\texttt{xxxpppeortoucyyyy}。

若选择 poretuco\texttt{poretuco} 作为名称,可验证 porto\texttt{porto} 和 euc\texttt{euc} 是其子序列(例如高亮显示为 POReTucO\texttt{POReTucO} 和 porEtUCo\texttt{porEtUCo}),而 prague\texttt{prague} 不是。

字符串 poretuc\texttt{poretuc} 无效,因其不包含 porto\texttt{porto} 作为子序列。字符串 poretucoague\texttt{poretucoague} 也无效,因其包含 prague\texttt{prague} 作为子序列。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页