其他分享
首页 > 其他分享> > 洛谷刷题11:拼数(P1012)

洛谷刷题11:拼数(P1012)

作者:互联网

题目描述

设有 n 个正整数 ,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。

输入格式

第一行有一个整数,表示数字个数 n。

第二行有 n个整数,表示给出的 n个整数 a[i]。

输出格式

一个正整数,表示最大的整数

输入输出样例

输入 #1
3
13 312 343
输出 #1
34331213
输入 #2
4
7 13 4 246
输出 #2
7424613
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<math.h>
#include<cstring>
#include<cstdio>
#include<cctype>
using namespace std;
string a[1000];
bool cmp(string a, string b)
{
    return a + b > b + a;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    sort(a+1, a + n+1, cmp);
    for (int i = 1; i <= n; i++)
        a[0] += a[i];
    cout << a[0];
}

自己写的cmp函数中,a+b>b+a是精髓

标签:11,洛谷,string,int,整数,P1012,复制,include,cmp
来源: https://www.cnblogs.com/NKHTH/p/14387534.html