ab1365adbdf94f7e9ab6847287bcc4703d620c3e3da30ba36a974b63276b1549
// https://szkopul.edu.pl/problemset/problem/fiEsvtlkaVCfXRj-Hub0VOxp/site/?key=statement
// OIJ XVII 3 etap próbny
// Liczby
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
unordered_map<int, int> was;
int main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
int n;
std::cin >> n;
vector<int> v;
for (int i = 0; i < n; i++) {
int a;
std::cin >> a;
if (was[a] < 2) {
v.push_back(a);
was[a]++;
}
}
sort(v.begin(), v.end(), [](int a, int b) {
if (abs(a) < abs(b)) {
return false;
}
return true;
});
long long ans = 0;
if (n <= 500) {
for (int i = 0; i < (int)v.size(); i++) {
for (int j = i + 1; j < (int)v.size(); j++) {
ans = std::max(ans, abs((ll)v[i] * v[j] - (ll)(v[i] + v[j])));
}
}
} else {
int d_q = std::min(100, (int)v.size());
for (int i = 0; i < d_q; i++) {
for (int j = i + 1; j < d_q; j++) {
ans = std::max(ans, abs((ll)v[i] * v[j] - (ll)(v[i] + v[j])));
}
}
}
std::cout << ans << '\n';
return 0;
}