2288: Game
| Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
|---|---|---|---|---|---|
| 3s | 8192K | 226 | 62 | Standard |
There are lots of number games for children. These games are pretty easy to play but not so easy to make. 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(less than 10^50). Input is 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 all the 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
Problem Source: UVA
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
bool cmp(string a,string b)
{
string c=a+b;
string d=b+a;
return c>d;
}
int main()
{
int n;
string a[60];
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;
}
return 0;
}
本文介绍了一款儿童数字游戏的算法实现,玩家通过排列给定的正整数来构建最大的可能整数。文章提供了完整的C++代码示例,演示了如何通过自定义排序比较函数实现目标。
5万+

被折叠的 条评论
为什么被折叠?



