洛谷 P1012. [NOIP1998 提高组] 拼数
原题链接
简单
作者:
y总的小迷弟
,
2023-08-06 09:08:41
,
所有人可见
,
阅读 84
//字符串排序
#include<bits/stdc++.h>
using namespace std;
int n;
string a[30];
bool check(string a, string b)
{
bool flag = false;
if(a.size() < b.size())
{
flag = true;
swap(a, b);
}
int cnt = -1;
for(int i = b.size();i <= a.size() - 1;i++)
{
cnt++;
b += a[cnt];
}
for(int i = 0;i < b.size();i++)
{
if(a[i] == b[i])
continue;
if(a[i] != b[i])
{
if(!flag)
return (a[i] - '0') > (b[i] - '0');
else
return (b[i] - '0') > (a[i] - '0');
}
}
return false;
}
int main()
{
cin >> n;
for(int i = 1;i <= n;i++)
cin >> a[i];
for(int i = 1;i <= n;i++)
{
for(int j = 2;j <= n;j++)
{
if(check(a[j], a[j - 1]))
swap(a[j], a[j - 1]);
}
}
for(int i = 1;i <= n;i++)
cout << a[i];
return 0;
}