1023. 组个最小数 (20)
2016-05-28 12:06
274 查看
1023. 组个最小数 (20)
时间限制 100 ms内存限制 65536 kB
代码长度限制 8000 B
判题程序 Standard
作者 CAO, Peng
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。
现给定数字,请编写程序输出能够组成的最小的数。
输入格式:
每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
2 2 0 0 0 3 0 0 1 0
输出样例:
10015558
原题地址: 链接
小小注意一下首位为0的情况就可以了
#include <iostream> #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <cctype> using namespace std; int n[10]; void solve() { int a[50], nn = 0; for(int i = 0; i < 10; i ++){ for(int j = 0; j < n[i]; j ++) a[nn ++] = i; } sort(a, a + nn); if(n[0]){ swap(a[0], a[n[0]]); } for(int i = 0; i < nn; i ++){ cout << a[i]; } cout << endl; } int main() { for(int i = 0; i < 10; i ++){ cin >> n[i]; } solve(); return 0; }
相关文章推荐
- Android短信开发,短信接收时被拆分的解决方案
- php获取一定范围内取N个不重复的随机数
- Arcengine调用GP服务
- WM_ACTIVATE窗口激活消息
- pulltorefresh的用法以及message传值
- Android进阶专题十:界面布局优化
- Lnmp环境下对接工行B2C支付
- 用C语言测试计算机大小端问题
- 华为OLT设备EPON/GPON混插管理
- cmake 资料
- 对Android的Opengl ES 中setLookAtM函数的一点理解
- 5 Ways to Learn and Remember Absolutely Anything
- CF Bear and Game
- 数组的基础知识
- 【LeetCode】103. Binary Tree Zigzag Level Order Traversal 解题报告
- Hibernate包及相关工具包下载地址
- Android进阶专题九:电池续航
- poj 1860 汇率2
- tomcat常见错误及解决方案
- SSH输入错误Action