问题
https://vjudge.net/problem/UVA-10905
分析
都变成字符串来处理,主要是比较函数,不能选择字典序大的在前面,如555,5554,所以应该尝试拼接一下
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <map>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn=50+5;
int n;
string str[maxn];
bool cmp(string lhs,string rhs){
return lhs+rhs>rhs+lhs;
}
int main(void){
while(scanf("%d",&n)==1 && n){
for(int i=0;i<n;++i){
cin>>str[i];
}
sort(str,str+n,cmp);
for(int i=0;i<n;++i){
printf("%s",str[i].c_str());
}
printf("\n");
}
return 0;
}