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) { var w = new long[8]; w[0] = a1 * b; w[1] = a1 + b; w[2] = a1 - b; w[3] = a2 * b; w[4] = a2 + b; w[5] = a2 - b; if (b != 0) { w[6] = a1 / b; w[7] = a2 / b; } else { w[6] = long.MaxValue; w[7] = long.MaxValue; } return w.Min(); } public static long getMax(long a1, long a2, long b) { var w = new long[8]; w[0] = a1 * b; w[1] = a1 + b; w[2] = a1 - b; w[3] = a2 * b; w[4] = a2 + b; w[5] = a2 - b; if (b != 0) { w[6] = a1 / b; w[7] = a2 / b; } else { w[6] = long.MinValue; w[7] = long.MinValue; } return w.Max(); } }