UVA——Children's Game

来源:互联网 发布:淘宝new balance 编辑:程序博客网 时间:2024/06/05 19:29

题目链接:

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27320#problem/A

 

题目大意:

给出n个数字,让这些数字拼接在一起,使最后的得到的数字最大,输出这个最大数字。

 

解题思路:

对字符串的的大小下个定义,然后进行排序,最后按照排序之后输出就好了。

字符串大小的定义:

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

 

源代码:

#include<stdio.h>#include<iostream>#include<vector>#include<string>#include<algorithm>#include<stdlib.h>using namespace std;vector<string>  s;char ch[10005];bool cmp(string a,string b){    string c,d;    c=a+b;    d=b+a;    return c>d;}int main(){    freopen("in.txt","r",stdin);    string a;    int n,i;    while(scanf("%d",&n)==1 && n)    {        s.clear();        for(i=0;i<n;i++)        {            scanf("%s",ch);            a=ch;            s.push_back(a);        }        sort(s.begin(),s.end(),cmp);        for(i=0;i<s.size();i++)            cout<<s[i];        cout<<endl;    }    return 0;}
原创粉丝点击