Inspirado por esta pregunta de nuestros amigos rivales en Code Review.
Definiciones
Una supermatriz es una matriz en la que cada elemento nuevo de la matriz es más grande que la suma de todos los elementos anteriores. {2, 3, 6, 13}
es una super matriz porque
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
no es una super matriz, porque
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
Una matriz duper es una matriz donde cada elemento nuevo en la matriz es más grande que el producto de todos los elementos anteriores. {2, 3, 7, 43, 1856}
es una super matriz, pero también es una matriz duper ya que
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
El reto
Escriba una función o programa que tome una matriz como entrada en el formato de lista nativa de su idioma y determine qué tan súper es la matriz. Opcionalmente, también puede tomar una entrada de longitud de matriz (para lenguajes como C / C ++). Además, se puede asumir que todos los números de la lista habrá enteros mayores que 0. Si es un súper matriz, debe imprimir It's a super array!
Si se trata de una súper duper matriz, debe imprimir It's a super duper array!
También es posible que una matriz sea duper- no super Por ejemplo, {1, 2, 3}
en este caso, debe imprimir It's a duper array!
Si la matriz no es super ni duper, puede imprimir un valor falso.
Como de costumbre, este es el código de golf, por lo que se aplican las lagunas estándar y gana la respuesta más corta en bytes.
{1, 2, 3}
matriz?
2 * 1
a la igualdad 3
en mi cabeza.
super[space][space]array
lo permiten.