1038. Recover the Smallest Number (30)
2018-02-04 17:27
169 查看
1038. Recover the Smallest Number (30)
时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B
判题程序 Standard 作者 CHEN, Yue
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 87
Sample Output:
22932132143287
时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B
判题程序 Standard 作者 CHEN, Yue
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 87
Sample Output:
22932132143287
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include <fstream> #include <string> #include <cmath> #include <algorithm> #include <queue> #include <map> using namespace std; const int MaxN = 10010; bool cmp(string a, string b) { return a + b < b + a; } int main() { #ifdef _DEBUG //freopen("data.txt", "r+", stdin); fstream cin("data.txt"); #endif // _DEBUG string str[MaxN] ,res; int N; cin >> N; for (int i = 0; i < N; ++i) cin >> str[i]; sort(str, str + N, cmp); for (int i = 0; i < N; ++i) res += str[i]; while (res.size() > 0 && res[0] == '0') res.erase(res.begin()); res.size() ? cout << res : cout << "0"; #ifdef _DEBUG cin.close(); #ifndef _CODEBLOCKS std::system("pause"); #endif // !_CODEBLOCKS #endif // _DEBUG return 0; }
相关文章推荐
- ksbsrv: No startup acknowledgement from forked process after 30 seconds
- 30:最小的K个数
- 6/27/2011 2:55:30 PM
- Malaysia Online Casino RM30 Free 50(30 free 50, deposit promotion, free bonus, malaysia online casin
- 30或60天后无法登录域
- PAT (Advanced Level) Practise 1131 Subway Map (30)
- 8/30/2011 4:09:14 PM
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-11层驱动之FSMC
- 《那些年啊,那些事——一个程序员的奋斗史》——30
- PAT - 甲级 - 1099. Build A Binary Search Tree (30)(二叉搜索树+层次遍历+中序遍历)
- The Database ID 30, Page (1:1141), slot 71 for LOB data type node does not exist.
- linux 内核编译时出现scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h错误的解决办法
- 30 个很棒的 PHP 开源 CMS 内容管理系统
- 1018. Public Bike Management (30)
- 应该记住的 30 个 CSS 选择器
- 【面试题】剑指Offer-30-最小的第K个数
- 乱码:sem_num.c:30: error: stray ‘\264’ in program
- 启动3个线程,线程1打印1到5,线程2打印5到10,线程3打印11到15,然后线程1打印16到20,以此类推。。。打印到30为止
- 30 +创意的登录页面设计灵感
- PAT甲题题解-1004. Counting Leaves (30)-统计每层叶子节点个数+dfs