using System; using System.Collections.Generic; using System.Linq; class Solution { static long largestValue(int[] A) { long res = 0; var x = GetAllCombos(A.ToList()); x.RemoveAll(z => z.Count != 2); var y = new List(); foreach (var item in x) { y.Add(item[0] * item[1]); } res = y.Sum(); return res; } 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 = largestValue(A); Console.WriteLine(result); } public static List> GetAllCombos(List list) { List> result = new List>(); // head result.Add(new List()); result.Last().Add(list[0]); if (list.Count == 1) return result; // tail List> tailCombos = GetAllCombos(list.Skip(1).ToList()); tailCombos.ForEach(combo => { result.Add(new List(combo)); combo.Add(list[0]); result.Add(new List(combo)); }); return result; } }