UVa 10905 Children's Game

   There are lots of number games for children. These games are pretty easy to play but not so easy tomake. We will discuss about an interesting game here. Each player will be given N positive integer.(S)He can make a big integer by appending those integers after one another. Such as if there are 4 integers as 123, 124, 56, 90 then the following integers can be made — 1231245690, 1241235690,5612312490, 9012312456, 9056124123, etc. In fact 24 such integers can be made. But one thing is sure that 9056124123 is the largest possible integer which can be made.

   You may think that it’s very easy to find out the answer but will it be easy for a child who has just got the idea of number?


Input

   Each input starts with a positive integer N (≤ 50). In next lines there are N positive integers. Inputis terminated by N = 0, which should not be processed.


Output

   For each input set, you have to print the largest possible integer which can be made by appending allthe N integers.


Sample Input

4

123 124 56 90

5

123 124 56 90 9

5

9 9 9 9 9

0


Sample Output

9056124123

99056124123

99999


题意:把n个正整数连接起来,输出最大的连接结果。


对于任意两个正整数a和b,要么a在前,要么b在前。到底选择a在前还是b在前呢?只要比较一下a-b和b-a是字典序大小就行了。比如9和90,由于990>909,所以a应该在前面。

       依照这样的方法对输入的数字进行排序后再输出就行了。

由于懒得去运算两个数连接后的结果,所以程序中直接用了C++的string类。虽然牺牲了点效率,但是对于本题的数据规模来说并没有什么大的影响。


代码如下:


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

string A[55];

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

int main()
{
    int n;
    while(cin>>n&&n)
    {
        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;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值