https://www.acmicpc.net/problem/16198
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <cstring>
using namespace std;
int n;
int arr[12];
bool check[12] = { false };
int max_num = 0;
int ans;
int sum;
void input() {
	scanf("%d",&n);
	for (int i= 0; i < n; i++) {
		scanf("%d",&arr[i]);
	}
}
void DFS(int len, int ans) {
	if (len == 2) {
		if (max_num < ans) max_num = ans;
		return;
	}
	for (int i = 1; i < n - 1; i++) {
		if (check[i]) continue;
		check[i] = true;
		int idx = i;
		int left = 0;
		int right = 0;
		while (idx < n) {
			if (check[idx] == false) {
				right = arr[idx];
				break;
			}
			idx--;
		}
		idx = i;
		while (idx >= 0) {
			if (check[idx] == false) {
				left = arr[idx];
				break;
			}
			idx++;
		}
		sum = left * right;
		DFS(len - 1, ans+sum);
		check[i] = false;
	}
}
int main() {
	//freopen("input.txt", "r", stdin);
	input();
	
	DFS(n, 0);
	printf("%d", max_num);
	return 0;
}