AtCoder Regular Contest 081: C - Make a Rectangle
solution
ふたつ以上ある数で最も大きいもの、そのふたつを除いての最も大きいものを取ってきてその積。 $O(N \log N)$でsortしていい感じにする。
unordered_map
するかstack
でいい感じにやると$O(N)$だが不要。
implementation
#!/usr/bin/env python3
n = int(input())
a = list(map(int, input().split()))
a.sort()
b = [ 0, 0 ]
i = 0
while i + 1 < n:
if a[i] == a[i + 1]:
b += [ a[i] ]
i += 2
else:
i += 1
print(b[-2] * b[-1])