A1038
用一串数拼接成一个数,输出最小的。
思路:使用string和相关的函数。
1 #include<iostream>
2 #include<cstdio>
3 #include<string>
4 #include<algorithm>
5 using namespace std;
6 const int maxn=10010;
7 string str[maxn];
8 bool cmp(string a,string b){
9 return a+b<b+a;
10 }
11 int main(){
12 int n;
13 cin>>n;
14 for(int i=0;i<n;i++){
15 cin>>str[i];
16 }
17 sort(str,str+n,cmp);
18 string ans;
19 for(int i=0;i<n;i++){
20 ans+=str[i];
21 }
22 while(ans.size()!=0&&ans[0]=='0'){
23 ans.erase(ans.begin());
24 }
25 if(ans.size()==0) cout<<0;
26 else cout<<ans;
27 return 0;
28 }