CF292C Beautiful IP Addresses

题目描述

本题采用简化的 TCP/IP 地址模型,请认真阅读题目描述。 一个 IP 地址是一个 32 位整数,表示为四个十进制的 8 位整数(无前导零),它们之间用英文句点分隔。例如,0.255.1.123 是正确的 IP 地址,0.256.1.123 和 0.255.1.01 不是。在本题中,任意由四个 8 位整数(0 到 255)组成的序列都视为合法的 IP 地址。 我们的主人公 Polycarpus 依然在一家大型公司做系统管理员。他喜欢“美丽的”IP 地址。要检查一个 IP 地址是否美丽,需要执行以下步骤: 1. 将 IP 地址的四个 8 位数字依次写在一行上,不加句点分隔; 2. 检查得到的字符串是否是回文串。 回文串指的是从左到右和从右到左读都是一样的字符串。 例如,IP 地址 12.102.20.121 和 0.3.14.130 是美丽的(因为字符串 "1210220121" 和 "0314130" 是回文串),而 1.20.20.1 和 100.4.4.1 不是。 Polycarpus 想找出所有包含给定数字集合且美丽的 IP 地址。每个给定数字在 IP 地址中至少出现一次,并且 IP 地址中不能出现其它数字。请帮助他完成这个任务。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10$),表示数字集合的大小。第二行包含 $n$ 个互不相同的整数 $a_1, a_2, \ldots, a_n$($0 \leq a_i \leq 9$),表示数字集合中的数字。

输出格式

第一行输出一个整数 $k$,表示包含给定数字集合的美丽 IP 地址个数。接下来 $k$ 行,每行输出一个美丽的 IP 地址,顺序任意。

说明/提示

由 ChatGPT 5 翻译