第一个数据和hack的最后一个数据没过
#include<bits/stdc++.h>
using namespace std;
long long n,a[25],wei[25][15],Head=1;
void chai(int N,int i,bool fir){
Head=1;
if(N==0){
return;
}
chai(N/10,i,1);
wei[i][Head]=N%10;
Head++;
if(fir==0) wei[i][Head+1]=999;
}
void pai(int N,int A,int b){
if(N>11) return;
if(wei[A][N]<wei[b][N]){
swap(a[A],a[b]);
for(int i=1;i<=11;i++){
swap(wei[A][i],wei[b][i]);
}
return;
}
if(wei[A][N]==wei[b][N]){
pai(N+1,A,b);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
chai(a[i],i,0);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++){
pai(1,j,j+1);
}
}
for(int i=1;i<=n;i++){
cout<<a[i];
}
return 0;
}