97AC - ABC071C: Make a Rectangle

ABC071-C (300 points)
問題

 N 本の棒の長さがそれぞれ \{A_1, A_2, ..., A_N\} であるとき, この中から異なる4本を選んでできる長方形のうち, 面積が最大になるものを求める.

  •  4 \leq N \leq 10^5
  •  1 \leq A_i \leq 10^9
  • 入力は全て整数
方針
  • 棒の長さでソート→長い方から順に見ていって 2 本 × 2 ペア見つかったら終了
# input
N = int(input())
A = list(map(int, input().split()))

A = sorted(A, reverse = True)
pair = 0
ans = []

i = 0
while i < N - 1:
    if A[i] == A[i + 1]:
        ans.append(A[i])
        pair += 1
        i += 2
    else:
        i += 1
    if pair == 2:
        print(ans[0] * ans[1])
        break

if pair < 2:
    print(0)