Coding is the closest thing we have to superpower !
描述
现在要建立有效的防火墙,阻止用户访问特定的网站。
防火墙可以访问N个网站,其中一些是需要被屏蔽的。网站的名字仅包含小写英文字母。
防火墙的屏蔽功能通过若干过滤器实现。一个过滤器是一个字符串,它可以屏蔽所有名字以该字符串作为前缀的网站。
你需要最小化过滤器的串长之和,使得防火墙可以屏蔽所有应当被屏蔽的网站,但不会屏蔽掉不该被屏蔽的网站。
输入
输入的第一行包含一个整数N(1 \le N \le 1 \cdot 10^5),代表网络中的网站数。
接下来N行,每行描述一个网站。每行包含一个字符C和一个字符串S,其中C代表网站的状态,S代表网站的名字。
如果C是‘+’则代表网站不应当被屏蔽;如果C是‘-’,则代表网站应当被屏蔽。
所有网站为非空字符串。
输入字符串的长度\le 10。
任意两个网站的名字不同。
输出
如果不存在满足要求的过滤器,则输出一行-1。
否则,首先输出一个整数K,代表使用的过滤器的数量。
接下来输出K行,每行包含一个字符串,代表过滤器。
请按照字典序输出这些过滤器。
样例
输入
4 - codeforces + codechef - youtube + google
输出
2 codef y
标签