C1008 - 组最小的数相加
题目描述
给定数字0 - 9各若干个。你可以以任意顺序排列这些数字,但是必须全部使用,目标是使得最后得到的数尽可能小(注意0不能作为首尾)。
例如,给定2个0,2个1,3个5,1个8,得到的最小的数就是10015558
现给定两组这样数字,每组10个,请编写程序输出这两组数能组成的两个最小的数相加之后的结果
输入格式
共2行
第1行,10个非负数,顺序表示数字0,数字1,数字2...数字9的个数,整数使用空格分隔
第2行,10个非负数,顺序表示数字0,数字1,数字2...数字9的个数,整数使用空格分隔
每组数中的10个数字的总个数不超过50,且至少拥有1个非0数字
输出格式
1行,输出这两组数能够组成的最小的数相加之后的结果
输入输出样例
| 输入样例 | 输出样例 |
|---|---|
| 2 2 0 0 0 3 0 0 1 0 3 1 0 0 1 2 3 1 0 0 |
10014572225 |
样例说明
2 2 0 0 0 3 0 0 1 0 能组成的最小的数是:10015558
3 1 0 0 1 2 3 1 0 0 能组成的最小的数是:10004556667
两个最小的数相加的结果是:10014572225
数据范围与提示
50%的数据:每组输入的10个数字的总个数不超过8(也就是组成的最小数最多是8位),且至少拥有1个非0数字
100%的数据:输入的10个数字的总个数不超过50(也就是组成的最小数最多是50位),且至少拥有1个非0数字
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式
1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1008.in,输出文件名为:C1008.out