Problem:
Score : 300 points

Problem Statement

We have N sticks with negligible thickness.
The length of the i-th stick is A_i.

Snuke wants to select four different sticks from these sticks and form a rectangle (including a square), using the sticks as its sides.
Find the maximum possible area of the rectangle.

Constraints

4 \leq N \leq 10^5

1 \leq A_i \leq 10^9

A_i is an integer.

Input

Input is given from Standard Input in the following format:

N
A_1 A_2 ... A_N

Output

Print the maximum possible area of the rectangle.
If no rectangle can be formed, print 0.

Sample Input 1

6
3 1 2 4 2 1

Sample Output 1

2

1 \times 2 rectangle can be formed.

Sample Input 2

4
1 2 3 4

Sample Output 2

0

No rectangle can be formed.

Sample Input 3

10
3 3 3 3 4 4 4 5 5 5

Sample Output 3

20

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

//                                                        ,.へ 
//___ 　　　　　　　 　 　 　 　 　　　　　　　　　　　     　ﾑ　　i 
//「 ﾋ_i〉　　　 　 　　　　　　 　 　　　　　　　　　　　　 ゝ　〈 
//ﾄ　ノ 　　　　　　　　　　　　　　　　　　　　　　　　　　iニ(() 
//i 　{ 　 　　　　　　　 　　　＿＿＿_ 　 　　　　　　　　| 　ヽ 
//i　　i　　　 　　　　　　　／__,　 , ‐-＼ 　 　 　 　 　　i 　　} 
//|　　 i　　　　　　 　　／（●) 　 ( ● )＼　　　　　　 {､　 λ 
//ト－┤.　　　　　　／ 　 　（__人__） 　　　＼　　　 ,ノ　￣ ,! 
//i　　　ゝ､_ 　　　　|　　　　　´￣` 　 　　　　|　,. '´ﾊ　　　,! 
//.　ヽ、 　　　｀`　､,__＼ 　　 　 　　　　　 　 ／"　＼ 　ヽ／ 
//＼ノ　ﾉ　　　ﾊ￣r/:::r―--―/::７　　 ﾉ　　　　／ 
//ヽ.　　　　　　ヽ::〈； . '::. :' |::/　　 /　　　,. " 
//`ｰ ､　　　　＼ヽ::. ;::：|/　　　　　ｒ'" 
//／￣二二二二二二二二二二二二二二二二ヽ 
//| 答 |　　　　　コ　ロ　ン　ビ　ア　　　　　　　│| 
//＼＿二二二二二二二二二二二二二二二二ノ
import java.util.Arrays;
import java.util.Scanner;
public class Main{
	public static void main(String[]args){
	Scanner scan=new Scanner(System.in);
	int a=scan.nextInt();
	long w=0,h=0;
	int d[]=new int[a];
	int e[]=new int[a];
	int count=0;
	for(int i=0;i<a;i++) {
		d[i]=scan.nextInt();
	}
	Arrays.sort(d);
	for(int i=0;i<a;i++) {
		e[i]=d[a-i-1];
	}
	for(int i=1;i<a;i++) {
		if(e[i]==e[i-1]) {
			i++;
			if(count==0) {
				w=e[i-1];
				count++;
			}
			else {
				h=e[i-1];
				break;
			}
		}
	}
	System.out.println(w*h);
	}
}