1038. Recover the Smallest Number (30)
来源:互联网 发布:手机淘宝秒杀神器 编辑:程序博客网 时间:2024/05/22 08:21
1038. Recover the Smallest Number (30)
Given a collection of number segments, you are supposed to recover the smallest number from them. For example, given {32, 321, 3214, 0229, 87}, we can recover many numbers such like 32-321-3214-0229-87 or 0229-32-87-321-3214 with respect to different orders of combinations of these segments, and the smallest number is 0229-321-3214-32-87.
Input Specification:
Each input file contains one test case. Each case gives a positive integer N (<=10000) followed by N number segments. Each segment contains a non-negative integer of no more than 8 digits. All the numbers in a line are separated by a space.
Output Specification:
For each test case, print the smallest number in one line. Do not output leading zeros.
Sample Input:5 32 321 3214 0229 87Sample Output:
22932132143287
#include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX 10010char s[MAX][10];char s1[30];char s2[30];int cmp(const void *a, const void *b){strcpy(s1, (const char *)a);strcat(s1, (const char *)b);strcpy(s2, (const char *)b);strcat(s2, (const char *)a);return strcmp(s1, s2);}int main(){int N, i, j;int flag;//freopen("d:\\input.txt", "r", stdin); scanf("%d", &N);for (i = 0; i < N; ++i){scanf("%s", s[i]);}qsort(s, N, sizeof(s[0]), cmp);flag = 0;for (i = 0; i < N; i++){for (j = 0; s[i][j] != 0; j++){if (s[i][j] != '0'){flag = 1;break;}}if (flag){break;}}if (!flag){puts("0");return 0;}printf("%s", s[i] + j);for (i = i + 1; i < N; ++i){printf("%s", s[i]);}return 0;}
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)-PAT
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- PAT 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 【PAT】1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 利用SSH隧道技术实现跳板机SHELL登陆以及SFTP到内网服务器
- colgroup
- Android下4G的路由问题
- AndroidStudio生成apk标签
- CodeForces 734C - Anton and Making Potions
- 1038. Recover the Smallest Number (30)
- 搭建Caffe环境
- 常用的Linux指令
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- wex5学习笔记(1)——data组件加载数据方法loadData()
- poj2017 Speed Limit
- 【Android开发基础】应用界面主题Theme使用方法
- 轻量级数据格式——JSON
- 用数组构造一般二叉树(完全二叉树较多案例啦)