1625. 组数问题

单点时限: 2.0 sec

内存限制: 256 MB

一集合有 M 个(M≤50)数,把其中末位数或首位数相等的两个数相加,组成一个新的数使其和最大 (如:9 99 999 三个数,则应选择后面两个相加)。

你的任务是找出符合条件的新数,并统计输出该集合至多有的 N 个新数。每一个输入的数位长 m≤100,输出的数位长不限,要完整地输出。

例如:

M=7

13089

20873909

35763

987637275

999

30987656284367493274567595

1000000101010101010101010101010100000 则可以组成:   1000000101010101010101010101010113089 {首位为 1}

30987656284367494262204870 {末位为 5} 等共有 5 个新数。

输入格式

输入文件的第一行为输入数的个数,以下各行为各输入数。

输出格式

输出文件的第一行为至多能组成新数的个数,以下各行为组成的新数。

样例

Input
7
13089
20873909
35763987637275
999
30987656284367493274567595
1000000101010101010101010101010100000
Output
5
1000000101010101010101010101010113089
20886998
30987656284367493274603358
987637276274
30987656284367494262204870

3 人解决,3 人已尝试。

4 份提交通过,共有 33 份提交。

7.8 EMB 奖励。

创建: 16 年,8 月前.

修改: 6 年,8 月前.

最后提交: 3 年,5 月前.

来源: N/A

题目标签