此代码错误,但可以ac
数据点
2
12 122
应该输出12212,此代码输出12122
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int compare(string a,string b){
int len=min(a.length(),b.length());
for(int i=0;i<10;i++){
char x='0',y='0';
if(i>=a.length()){
x=a[a.length()-1];
}
else x=a[i];
if(i>=b.length()){
y=b[b.length()-1];
}
else y=b[i];
if(x>y) return 0;
if(x==y) continue;
if(x<y) return 1;
}
return 0;
}
int main(){
int n;
cin>>n;
string a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1;j++){
if(compare(a[j],a[j+1])){
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++){
cout<<a[i];
}
}