#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ALL(g) (g).begin(),(g).end() #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define F(i,j,k) fill(i[0],i[0]+j*j,k) #define P(p) cout<<(p)< vi; typedef vector vl; typedef vector vd; typedef pair pii; typedef pair pll; typedef long long ll; int main(){ int n; cin>>n; vector a(n); for(int i=0;i>a[i]; ll a_max=a[0],a_min=a[0]; //最大、最小を記録して動的計画法 for(int i=1;i now; now.push_back(a[i]*a_max); now.push_back(a[i]*a_min); now.push_back(a[i]+a_max); now.push_back(a[i]+a_min); now.push_back(a_max-a[i]); now.push_back(a_min-a[i]); if(a[i]!=0){ now.push_back(a_max/a[i]); now.push_back(a_min/a[i]); } sort(now.begin(),now.end()); a_min=min(a_min,now[0]); ll last=now.back(); a_max=max(a_max,last); } cout<