#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LONG_INF 10000000000000000 #define MAX_MOD 1000000007 #define REP(i,n) for(long long i = 0;i < n;++i) int main() { int n; cin >> n; vector a; REP(i, n) { long long hoge; cin >> hoge; a.push_back(hoge); } long long big_max = a[0]; long long small_min = a[0]; for (int i = 1;i < n;++i) { vector hogee; hogee.push_back(a[i] * big_max); hogee.push_back(a[i] * small_min); hogee.push_back(small_min + a[i]); hogee.push_back(big_max + a[i]); hogee.push_back(small_min - a[i]); hogee.push_back(big_max - a[i]); if (a[i] != 0) { hogee.push_back(big_max / a[i]); hogee.push_back(small_min / a[i]); } sort(hogee.begin(), hogee.end()); small_min = min(small_min, hogee[0]); big_max = max(big_max, hogee[hogee.size() - 1]); } cout << big_max << endl; return 0; }