题意:给出一些数字,前后拼接使得其值最小。
题解:重写sort的cmp函数,快速排序的神奇应用。
注意点:去掉前导零之后如果字符串为空则书输出0
code in view
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+10;
int n;
string s[maxn];
bool cmp(string a,string b){
return a+b<b+a;
}
string ans="";
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>s[i];
sort(s+1,s+1+n,cmp);
for(int i=1;i<=n;i++) ans+=s[i];
while(ans[0]=='0') ans.erase(0,1);
if(ans=="") cout<<0;
else cout<<ans;
return 0;
}