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;
}