#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e8; const ll INF=1e16; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; int main(){ int n; cin>>n; assert(2<=n&&n<=16); vi in(n); rep(i,n)cin>>in[i]; rep(i,n)assert(-9<=in[i]&&in[i]<=9); ll dp[2]={in[0],in[0]}; loop(i,1,n){ ll ndp[2]={INF,-INF}; rep(j,2){ ndp[0]=min(ndp[0],dp[j]+in[i]); ndp[0]=min(ndp[0],dp[j]-in[i]); ndp[0]=min(ndp[0],dp[j]*in[i]); if(in[i])ndp[0]=min(ndp[0],dp[j]/in[i]); ndp[1]=max(ndp[1],dp[j]+in[i]); ndp[1]=max(ndp[1],dp[j]-in[i]); ndp[1]=max(ndp[1],dp[j]*in[i]); if(in[i])ndp[1]=max(ndp[1],dp[j]/in[i]); } dp[0]=ndp[0];dp[1]=ndp[1]; } cout<