問題文

無事フル単を達成した処理犬君は、自分へのご褒美にお寿司屋さんにやってきました。
そのお寿司屋さんは、 NN 個の寿司ネタを提供しており、 1,2,3,,N1,2,3,\dots,N の番号が付いています。
また、寿司ネタ i(1iN)i \, (1 \leq i \leq N) 美味しさは AiA_i と定められています。

そのお寿司屋さんでは、好きな寿司ネタを 33 つ (同じ寿司ネタを 22 つ以上選んでも良い。) 選んで注文することで、お得にお寿司が食べられるキャンペーンをやっています。処理犬君は、早速寿司ネタを 33 つ選ぼうと思いましたが、どれも美味しそうで中々決められません。
そこで、処理犬君は、以下で定義される「満足度」を最大化するように寿司ネタを 33 つ選ぶことにしました。処理犬君が得られる満足度の最大値を出力してください。

満足度

寿司ネタ i,j,ki,j,k を選んだときの満足度は、
(Ai+Aj+Ak)×(A_i + A_j + A_k) \times (集合 {i,j,k}\{i,j,k\} の要素の種類数) です。
例えば、 A1=10,A2=20,A3=30A_1 = 10, A_2 = 20, A_3 = 30 で、

  • (i=1,j=2,k=3)(i = 1, j = 2, k = 3) を選んだときの満足度は、
    (10+20+30)×(10 + 20 + 30) \times (集合 {1,2,3}\{1,2,3\} の要素の種類数) =(10+20+30)×3=180= (10 + 20 + 30) \times 3 = 180 です。
  • (i=1,j=3,k=3)(i = 1, j = 3, k = 3) を選んだときの満足度は、
    (10+30+30)×(10 + 30 + 30) \times (集合 {1,3,3}\{1,3,3\} の要素の種類数) =(10+30+30)×2=140= (10 + 30 + 30) \times 2 = 140 です。
  • (i=3,j=3,k=3)(i = 3, j = 3, k = 3) を選んだときの満足度は、
    (30+30+30)×(30 + 30 + 30) \times (集合 {3,3,3}\{3,3,3\} の要素の種類数) =(30+30+30)×1=90= (30 + 30 + 30) \times 1 = 90 です

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 108Ai108(1iN)-10^8 \leq A_i \leq 10^8 \, (1 \leq i \leq N)
  • 入力は全て整数

入力

N
A_1 A_2 A_3 ... A_N
  • 11 行目に、提供している寿司ネタの数 NN が与えられます。
  • 22 行目に、各寿司ネタの美味しさ Ai(1iN)A_i \, (1 \leq i \leq N) が空白区切りで与えられます。

出力

処理犬君が得られる満足度の最大値を出力してください。

入力例 1

3
10 20 30

出力例 1

180

寿司ネタ 1,2,31,2,3 を選んだとき、得られる満足度は、
(10+20+30)×(10 + 20 + 30) \times (集合 {1,2,3}\{1,2,3\} の要素の種類数) =(10+20+30)×3=180= (10 + 20 + 30) \times 3 = 180 です。 満足度を 180180 より大きくするように寿司ネタを選ぶことはできないので、 180180 を出力します。

入力例 2

1
10

出力例 2

30

提供されている寿司ネタが 33 個未満の場合もあります。

入力例 3

1
-1

出力例 3

-3

美味しさが負の値のこともあります。

Submit


Go (1.21)