C语言:设有 n个正整数 a1 a2 ... an​,如何将它们连接成一行,相邻数字首尾相接,组成一个最大的整数

例如:13、312、343 可以组合成为的最大数为 34331213 。
输入数据共两行,第一行有一个整数,表示数字个数 n。第二行有 n 个整数,表示给出的 n 个整数 a1 到 an。
那么我应该如何实现,最大数的组合

参考洛谷题解:https://www.luogu.com.cn/problem/solution/P1012
请采纳,谢谢

望采纳!谢谢

#include<iostream>
using namespace std;
int main()
{
    int n;
    string a[30];
    
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
        
    for(int i = 1; i <= n-1; i++)
        for(int j = 1; j <= n-i; j++)
            if(a[j + 1] + a[j] > a[j] + a[j + 1])
                swap(a[j] , a[j + 1]);    
    
    for(int i = 1; i <= n; i++)
        cout << a[i];    

    return 0;
}