1038. Recover the Smallest Number (30)
来源:互联网 发布:局域网网站搭建 ubuntu 编辑:程序博客网 时间:2024/05/18 13:07
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 87
Sample Output:
22932132143287
#include<iostream>#include<string>#include<algorithm>using namespace std;int times[10];int t=0;bool compare1(string a,string b){if(a==b)return false;int i;int min1=min(a.size(),b.size());for(i=0;i<min1;i++){if(a[i]!=b[i])return a[i]<b[i];}int tt=0;if(a.size()==min1){while(b.size()>i+tt){if(b[i+tt]!=b[tt])return b[i+tt]>b[tt];tt++;}return true;}while(a.size()>i+tt){if(a[i+tt]!=a[tt])return a[i+tt]<a[tt];tt++;}return true;}int main(){int N;cin>>N;int i,j;for(i=0;i<10;i++)times[i]=0;string *s=new string[N];for(i=0;i<N;i++){cin>>s[i];times[s[i][0]-'0']++;}sort(s,s+N,compare1);string t;int fir=0;for(i=0;i<N;i++){if(i==0){for(j=0;j<s[0].size();j++){if(s[0][j]!='0')fir=1;if(fir==1)t+=s[0][j];}}elset+=s[i];}int iszero=0;for(i=0;i<t.size();i++)if(t[i]!='0')iszero=1;if(iszero==0)cout<<0;elsecout<<t;}
- 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)
- 用定时器代替事件
- [BZOJ2940][Poi2000]条纹(博弈Multi-SG游戏)
- 实习每日总结_20161222
- SpringMVC详细示例实战教程
- 油田数量DFS
- 1038. Recover the Smallest Number (30)
- jquery 对json数据的操作,增加、删除记录
- 操作系统概念及特征
- redis ziplist压缩列表的源码分析
- HDU-ACM题目分类列表
- 12.22
- 骨头的诱惑DFS
- 大数据完全图
- 斐波那契数列之矩形覆盖问题