#include <string.h>
#include <stdio.h>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int N;
string str[10010];
bool judge(string a,string b)
{
int len1=a.length();
int len2=b.length();
int i;
for(i=0;i<len1&&i<len2;i++)
{
if(a[i]>b[i])
{
return false;
}
else if(a[i]<b[i])
{
return true;
}
}
while(i<len1)
{
for(int j=0;j<i;j++)
{
if(a[i]<a[j])
{
return true;
}
else if(a[i]>a[j])
{
return false;
}
}
i++;
}
while(i<len2)
{
for(int j=0;j<i;j++)
{
if(b[i]<b[j])
{
return false;
}
else if(b[i]>b[j])
{
return true;
}
}
i++;
}
return true;
}
bool cmp(string a,string b)
{
return judge(a,b);
}
int main()
{
scanf("%d",&N);
for(int i=0;i<N;i++)
{
cin>>str[i];
}
sort(str,str+N,cmp);
string result="";
for(int i=0;i<N;i++)
{
result+=str[i];
}
while(result[0]=='0'&&result.length()>1)
{
result.erase(result.begin());
}
cout<<result;
return 0;
}
PAT甲1038 Recover the Smallest Number (30)(30 分)
最新推荐文章于 2021-08-14 15:27:30 发布