您的位置:首页 > 其它

UVA 10905 Children's Game

2016-07-18 10:27 316 查看
题意:

给你n个数,要你用这n个数组成一个最大的数。

思路:

对于两个数a和b,要如何选择哪个数放前面呢?很简单,若ab>ba则选a,若ab<ba则选b。所以我们只要按这个规则sort一遍就可以了。(这题每个这些数的数据范围,我用int和long long都过不了,估计数据每个数都特别大,所以这里用string)。

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

const int MAX=55;
int n;
string a[MAX];

bool cmp(string a,string b){
return a+b>b+a;
}

int main(){
while(cin>>n){
if(n==0) break;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++){
cout<<a[i];
}
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: