CF780D Innokenty and a Football League
题目描述
Innokenty 是 Byteland 新足球联赛的主席。他的首要任务是为所有俱乐部分配短名,以便在电视比分旁显示。当然,所有短名都必须互不相同,并且 Innokenty 希望所有短名由三个字母组成。
每个俱乐部的全名由两个单词组成:球队名称和主场城市名称,例如,“DINAMO BYTECITY”。Innokenty 不希望分配奇怪的短名,因此他希望为每个俱乐部选择如下两种规则之一的短名:
1. 短名与球队名称的前三个字母相同,例如上述俱乐部的短名就是“DIN”;
2. 或者,短名的前两个字母与球队名称的前两个字母相同,第三个字母与主场城市名称的第一个字母相同。对于上述俱乐部来说就是“DIB”。
除此之外,还有一条规则:如果对于某个俱乐部 $x$,选择了第二种短名方案,则不能有任何一个俱乐部选择第一种方案并且该第一种方案短名与俱乐部 $x$ 的第一种方案短名相同。例如,如果上述俱乐部的短名为“DIB”,则不允许任何俱乐部用第一方案选了“DIN”作为短名。然而,如果某个俱乐部短名为“DIN”,并且“DI”是球队名称的前两字母,而“N”是主场城市名称的第一个字母则是允许的。当然,任何两个俱乐部的短名都不能相同。
请帮助 Innokenty 为每支球队选择一个短名。如果无法满足要求,请报告。如果有多组答案,任意一组都可。如果某支球队的两种短名方案相同,则 Innokenty 认为只有一种方案被选择。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 1000$)——联赛中俱乐部的数量。
接下来的 $n$ 行,每行包含两个单词——某支俱乐部的球队名和主场城市名称。球队名和主场城市名都仅包含大写英文字母,长度不小于 $3$ 且不超过 $20$。
输出格式
如果无法选择短名使所有约束被满足,输出一行 “NO”。
否则,第一行输出“YES”。接下来输出 $n$ 行,每行输出相应球队被选中的短名。输出顺序需与输入顺序一致。
如果有多组答案,输出任意一组均可。
说明/提示
在第一个样例中,Innokenty 可以为两个俱乐部都选择第一种方案。
在第二个样例中,无论如何分配短名方案,只要两支俱乐部的第一种方案短名相同,就无法满足第二种要求,因此答案为不可能。
在第三个样例中,前两个俱乐部可以选择第二种方案,第三个俱乐部可以选择第一种方案。
在第四个样例中,注意有可能某个俱乐部 $x$ 被选中的短名与另一个俱乐部 $y$ 的第一种方案短名相同,只要 $x$ 和 $y$ 的第一种方案短名本身不同即可。
由 ChatGPT 5 翻译