using System.Linq; using System; public class Hello { public static void Main() { var n = int.Parse(Console.ReadLine().Trim()); string[] line = Console.ReadLine().Trim().Split(' '); var a = Array.ConvertAll(line, long.Parse); var max = a[0]; var min = a[0]; for (int i = 1; i < n; i++) { var tmax = getMax(max, min, a[i]); var tmin = getMin(max, min, a[i]); max = tmax; min = tmin; } Console.WriteLine(max); } public static long getMin(long a1, long a2, long b) { if (b != 0) { var w = new long[8]; w[0] = a1 * b; w[1] = a1 + b; w[2] = a1 - b; w[3] = a1 / b; w[4] = a2 * b; w[5] = a2 + b; w[6] = a2 - b; w[7] = a2 / b; return w.Min(); } else { var w = new long[6]; w[0] = a1 * b; w[1] = a1 + b; w[2] = a1 - b; w[3] = a2 * b; w[4] = a2 + b; w[5] = a2 - b; return w.Min(); } } public static long getMax(long a1, long a2, long b) { if (b != 0) { var w = new long[8]; w[0] = a1 * b; w[1] = a1 + b; w[2] = a1 - b; w[3] = a1 / b; w[4] = a2 * b; w[5] = a2 + b; w[6] = a2 - b; w[7] = a2 / b; return w.Max(); } else { var w = new long[6]; w[0] = a1 * b; w[1] = a1 + b; w[2] = a1 - b; w[3] = a2 * b; w[4] = a2 + b; w[5] = a2 - b; return w.Max(); } } }