using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static long maximumValue(int[] a) { int fMax = int.MinValue; for(int i = 0; i < a.Length; ++i) { for(int j = i; j < a.Length; ++j) { var subArray = a.Skip(i).Take(j - i + 1).ToArray(); int gcd = Gcd(Math.Abs(a[i]), Math.Abs(a[j])); int sum = subArray.Sum(); int max = subArray.Max(); //Console.WriteLine($"{a[i]} {a[j]} => {gcd} {sum} {max}"); int f = gcd * (sum - max); if(f > fMax) { fMax = f; } } } return fMax; } static int Gcd(int a, int b) { return b == 0 ? a : Gcd(b, a % b); } static void Main(String[] args) { int n = Convert.ToInt32(Console.ReadLine()); string[] a_temp = Console.ReadLine().Split(' '); int[] a = Array.ConvertAll(a_temp,Int32.Parse); long result = maximumValue(a); Console.WriteLine(result); } }