Zainspirowany tym pytaniem od naszych rywali z Code Review.
Definicje
Super tablica jest tablicą w której każdy nowy element tablicy jest większy niż suma wszystkich poprzednich elementów. {2, 3, 6, 13}
jest super tablicą, ponieważ
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
to nie super tablicę, ponieważ
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
Tablica duplikacji to tablica, w której każdy nowy element w tablicy jest większy niż iloczyn wszystkich poprzednich elementów. {2, 3, 7, 43, 1856}
jest super tablicą, ale od tego czasu jest również tablicą duplikującą
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
Wyzwanie
Napisz funkcję lub program, który pobiera tablicę jako dane wejściowe w twoim rodzimym formacie listy i określa, jak super jest tablica. Opcjonalnie możesz również wprowadzić długość tablicy (dla języków takich jak C / C ++). Możesz również założyć, że wszystkie liczby na liście będą liczbami całkowitymi większymi niż 0. Jeśli jest to super tablica, musisz wydrukować. It's a super array!
Jeśli jest to tablica super duper , musisz wydrukować. It's a super duper array!
Możliwe jest również, że tablica będzie duper- nie super. Na przykład {1, 2, 3}
W takim przypadku powinieneś wydrukować. It's a duper array!
Jeśli tablica nie jest ani super-duper, możesz wydrukować wartość fałszowania.
Jak zwykle jest to golf golfowy, więc obowiązują standardowe luki i wygrywa najkrótsza odpowiedź w bajtach.
{1, 2, 3}
tablicy?
2 * 1
na równi 3
w głowie.
super[space][space]array
jest to dozwolone.