Ispirato da questa domanda dei nostri amici rivali alla Code Review.
definizioni
Un super array è un array in cui ogni nuovo elemento dell'array è più grande della somma di tutti gli elementi precedenti. {2, 3, 6, 13}
è un super array perché
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
non è un super array, perché
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
Un array duper è un array in cui ogni nuovo elemento dell'array è più grande del prodotto di tutti gli elementi precedenti. {2, 3, 7, 43, 1856}
è un super array, ma da allora è anche un array duper
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
La sfida
Scrivi una funzione o un programma che accetta un array come input nel formato dell'elenco nativo delle tue lingue e determina quanto è eccellente l'array. Puoi anche prendere un input di lunghezza dell'array (per linguaggi come C / C ++). Inoltre, puoi presumere che tutti i numeri nell'elenco saranno numeri interi maggiori di 0. Se si tratta di un super array, è necessario stampare It's a super array!
Se si tratta di un array super duper , è necessario stampare It's a super duper array!
È anche possibile che un array sia duper- non eccellente. Ad esempio {1, 2, 3}
In questo caso, è necessario stampare It's a duper array!
Se l'array non è né super né duper, è possibile stampare un valore errato.
Come al solito, questo è il golf del codice, quindi si applicano scappatoie standard e vince la risposta più breve in byte.
{1, 2, 3}
array?
2 * 1
a eguagliare 3
nella mia testa.
super[space][space]array
è permesso.