#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(I,A,B) for(int I = (A); I < (B); ++I) typedef long long ll; int main(){ int N; cin >> N; ll a[N]; FOR(i,0,N) cin >> a[i]; ll dp[N+1][2]; // 最大と最小のみ保存していく dp[1][0] = dp[1][1] = a[0]; FOR(i,1,N){ vector v; FOR(j,0,2){ if(a[i] != 0) v.push_back(dp[i][j]/a[i]); v.push_back(dp[i][j]+a[i]); v.push_back(dp[i][j]-a[i]); v.push_back(dp[i][j]*a[i]); } sort(v.begin(), v.end()); dp[i+1][0] = v[0]; dp[i+1][1] = v[v.size()-1]; } cout << dp[N][1] << endl; return 0; }