首页 > 代码库 > XidianOJ 1088 AK后的V8
XidianOJ 1088 AK后的V8
题目描述
公元20XX年X月X日,V8和他的小伙伴们又一次早早地AK(all kill)了,善良的V8为了不伤害其他蒟蒻们的心,纵使AK了也不提前离场,但是由于电脑被他的两个大神队友拿来玩五子棋(组队赛三人一台电脑),V8只能一个人无聊的在草稿纸上乱画,当V8因为思念过度画挫了某人的头像时,吓得V8马上写了三个数字,3,2,3,这时,机智的V8忽然发现:这三个数字拼起来最大是332!而不是233!!!无聊的V8又写下两个数字,97,98,然后V8发现其最大值是9897而不是9798。现在无聊的V8写下了n个数字,V8想知道这n个数字拼起来的最大值是多少。
输入
多组数据,请处理到文件结束。每组数据第一行一个数字n(1<=n<=10^5),第二行n个数字ai(0<=ai<=10^8)。
输出
每组数据一行输出,表示其拼起来的最大值。
--正文
对于使用sort函数偷懒的人来说
这题烦人之处是如何输出比较结果,试过c的字符串不太方便,还是用c++的string比较好
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; string s[100001]; bool cmp(string a,string b){ string s1 = a + b,s2 = b + a; return (s1 > s2); } int main(){ int n; while (scanf("%d",&n) != EOF){ int i; for (i=0;i<n;i++){ cin >> s[i]; } sort(s,s+n,cmp); for (i=0;i<n;i++){ cout << s[i]; } printf("\n"); } return 0; }
XidianOJ 1088 AK后的V8
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。