Official

F - 最大の結合 / Maximum Concatenation Editorial by sounansya


まず、連結に用いる要素 \(2\) つは \(A\) の大きい要素 \(2\) つに限定して良いです。

これはそれ以外の要素が存在する場合それより大きい要素に置換することでより連結後の整数を大きくすることができるからです。

したがって、 \(A\) の大きい要素を \(2\) つ順に \(x,y\) として、 \(x,y\) をこの順に連結したもの、\(y,x\) をこの順に連結したものの大きい方を出力すれば良いです。

実装例 (Python3)

n = int(input())
a = sorted(list(map(int, input().split())))

def f(x, y):
    return int(str(x) + str(y))

print(max(f(a[-1], a[-2]), f(a[-2], a[-1])))

posted:
last update: