Inspirado por essa pergunta de nossos amigos rivais na Code Review.
Definições
Uma super matriz é uma matriz em que cada novo elemento da matriz é maior que a soma de todos os elementos anteriores. {2, 3, 6, 13}
é uma super matriz porque
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
não é um super array, porque
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
Uma matriz duper é uma matriz em que cada novo elemento da matriz é maior que o produto de todos os elementos anteriores. {2, 3, 7, 43, 1856}
é um super array, mas também é um array duper desde
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
O desafio
Escreva uma função ou programa que aceite uma matriz como entrada no formato de lista nativa de idiomas e determine o quão super é a matriz. Opcionalmente, você também pode obter uma entrada de comprimento de matriz (para idiomas como C / C ++). Além disso, você pode assumir que todos os números da lista serão números inteiros maiores que 0. Se for uma super matriz, você deve imprimir It's a super array!
Se for uma matriz super duper , você deve imprimir It's a super duper array!
Também é possível que uma matriz seja duplicada. não super. Por exemplo: {1, 2, 3}
neste caso, você deve imprimir It's a duper array!
Se a matriz não for nem super nem duper, é possível imprimir um valor falso.
Como de costume, esse é um código de golfe, então as brechas padrão se aplicam e a resposta mais curta em bytes vence.
{1, 2, 3}
matriz?
2 * 1
que igualar 3
na minha cabeça.
super[space][space]array
for permitido.