CF292C.Beautiful IP Addresses
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
The problem uses a simplified TCP/IP address model, please read the statement carefully.
An IP address is a 32-bit integer, represented as a group of four decimal 8-bit integers (without leading zeroes), separated by commas. For example, record 0.255.1.123 shows a correct IP address and records 0.256.1.123 and 0.255.1.01 do not. In the given problem an arbitrary group of four 8-bit integers is a correct IP address.
Our hero Polycarpus still works as a system administrator in some large corporation. He likes beautiful IP addresses. To check if some IP address is beautiful, he should do the following:
- write out in a line four 8-bit numbers of the IP address, without the commas;
- check if the resulting string is a palindrome.
Let us remind you that a palindrome is a string that reads the same from right to left and from left to right.
For example, IP addresses 12.102.20.121 and 0.3.14.130 are beautiful (as strings "1210220121" and "0314130" are palindromes), and IP addresses 1.20.20.1 and 100.4.4.1 are not.
Polycarpus wants to find all beautiful IP addresses that have the given set of digits. Each digit from the set must occur in the IP address at least once. IP address must not contain any other digits. Help him to cope with this difficult task.
本题采用简化的 TCP/IP 地址模型,请仔细阅读题干。
IP 地址是一个 32 位整数,表示为由四个十进制的 8 位整数(不带前导零)组成的序列,各整数之间用英文句号 . 分隔。例如,0.255.1.123 是一个合法的 IP 地址,而 0.256.1.123 和 0.255.1.01 则不合法。但在本题中,任意一组四个 8 位整数均视为合法的 IP 地址。
我们的主人公 Polycarpus 仍在某大型企业担任系统管理员。他偏爱“优美的” IP 地址。要判断某个 IP 地址是否优美,他需执行以下步骤:
- 将 IP 地址的四个 8 位数字按顺序写出(不加句号),连成一个字符串;
- 检查该字符串是否为回文串。
请回顾:回文串是指正读与反读都完全相同的字符串。
例如,IP 地址 12.102.20.121 和 0.3.14.130 是优美的(因为对应字符串 "1210220121" 和 "0314130" 均为回文串),而 IP 地址 1.20.20.1 和 100.4.4.1 则不是。
Polycarpus 希望找出所有满足如下条件的优美 IP 地址:其十进制表示中恰好包含给定数字集合中的所有数字,且每个数字在该 IP 地址中至少出现一次,不得包含集合以外的任何其他数字。请帮助他完成这项艰巨的任务。
输入格式
The first line contains a single integer n (1 ≤ n ≤ 10) — the number of digits in the set. The second line contains the set of integers _a_1, _a_2, ..., a__n (0 ≤ a__i ≤ 9). It is guaranteed that all digits in the set are distinct.
第一行包含一个整数 n(1≤n≤10)—— 表示集合中数字的个数。
第二行包含整数集合 a1,a2,…,an(0≤ai≤9)。保证集合中的所有数字互不相同。
输出格式
In the first line print a single integer k — the number of beautiful IP addresses that contain the given set of digits. In the following k lines print the IP addresses, one per line in the arbitrary order.
第一行输出一个整数 k —— 包含给定数字集合的优美 IP 地址的数量。
接下来的 k 行中,每行输出一个 IP 地址,顺序任意。
输入输出样例
输入#1
6 0 1 2 9 8 7
输出#1
6 78.190.209.187 79.180.208.197 87.190.209.178 89.170.207.198 97.180.208.179 98.170.207.189
输入#2
1 4
输出#2
16 4.4.4.4 4.4.4.44 4.4.44.4 4.4.44.44 4.44.4.4 4.44.4.44 4.44.44.4 4.44.44.44 44.4.4.4 44.4.4.44 44.4.44.4 44.4.44.44 44.44.4.4 44.44.4.44 44.44.44.4 44.44.44.44
输入解题思路,AI测评打分。不知道怎么写?