Producto de los dos valores distintos más grandes

Crea una función que reciba un arreglo de enteros y devuelva el producto de los dos valores distintos más grandes. Si el arreglo contiene un solo valor distinto, eleva ese valor al cuadrado.

Cuando el valor máximo aparece más de una vez, solo se puede usar una vez si existe otro valor distinto.

Ejemplos

product([2, 3, 1, -1, 2]) ➞ 6
// 3 × 2 = 6

product([-2, -2, -1, -1]) ➞ 2
// Usa -2 y -1, no -1 dos veces.

product([8, 8, 8]) ➞ 64
// Como solo hay un valor distinto, elévalo al cuadrado.

product([2, 8, 8, 8]) ➞ 16
// Usa 8 una vez y el siguiente valor distinto, 2.

Notas

  • Todos los valores de entrada son enteros.
  • Los valores pueden ser positivos o negativos.