UVa-10905 Children's Game

来源:互联网 发布:2016最新赚钱网络手游 编辑:程序博客网 时间:2024/05/20 06:38
给定n个整数,把他们连接成一个最大的整数,如123,124,56,90连接成9056124123
考虑:先将其进行排序,比如先取两个数啊a,b,若 a+b>b+a 则 把其合成ab的形式再与其他数字用相同的方法进行比较,合成,最后的结果一定是最大的
#include<iostream>#include<algorithm>#include<cstring> using namespace std;bool cmp(string a,string b){return a+b>b+a;//string大小的比较是从第一位字符开始}int main(){int n;while(cin>>n&&n){string a[n];for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n,cmp);//cmp是比较函数自己编写for(int j=0;j<n;j++){cout<<a[j];}cout<<endl;}return 0;} 

0 0
原创粉丝点击