n個の正の整数が設けられ、それらを一列に接続し、最大の複数の整数を構成する.


タイトルの説明


n個の正の整数が設けられ、それらを一列に接続し、最大の複数の整数を構成する.例えば、n=3の場合、3つの整数13312343、連結された最大整数は34331213である.例えば、n=4の場合、4つの整数7,13,4246が接続された最大整数は7424613である.

説明を入力:


複数組の試験サンプルがあり、各組の試験サンプルは2行を含み、第1の動作は1つの整数N(N<=100)であり、第2の行はN個の数(各数が1000を超えず、スペースが分かれている)を含む.

出力の説明:


データのセットごとに最大を表す整数を出力します.

例1


入力
2
12 123
4
7 13 4 246

しゅつりょく
12312
7424613
//  A+B>B+A A>B

#include 
#include 

using namespace std;

bool campare(string i, string j)
{
    return (i+j) > (j+i);
}

int main()
{
    int n;
    while(cin >> n)
    {
        vector<string> tmp(n, "");
        for(int i=0; icin >> tmp[i];
        }

        sort(tmp.begin(), tmp.end(), campare);  // campare i   j

        for(int i=0; icout << tmp[i];
        }
        cout << endl;
    }
}

1つの書き方:
bool campare(string i, string j)
{
    return (i+j) > (j+i);
}

sort(tmp.begin(), tmp.end(), campare);  // campare i   j

もう1つの書き方:
    sort(sArray.begin(), sArray.end(), [](string s1, string s2){
        return (s1+s2) > (s2+s1);
         });

https://www.nowcoder.com/profile/5536239/codeBookDetail?submissionId=28949899