Młoda schemat jest ułożenie pudełek w lewo-uzasadnione wierszy i kolumn top-uzasadnione. Dla każdego pola wszystkie pola nad nim i po jego lewej stronie są zajęte.
XXXXX
XXX
XXX
X
Długość haczyk pudełka jest liczba pól po jego prawej stronie, w tym samym rzędzie, i poniżej niej w tej samej kolumnie, a także liczyć się raz. Na przykład drugie pudełko ma haczyk o długości 6:
X****
X*X
X*X
X
Oto wszystkie długości haków:
86521
532
421
1
Twoim celem jest obliczenie iloczynu długości haka tutaj 8*6*5*2*1*5*3*2*4*2*1*1 = 115200
.
(Przeczytaj o formule długości haka, jeśli jesteś zainteresowany, dlaczego to wyrażenie ma znaczenie.)
Dane wejściowe: zbiór rozmiarów wierszy w postaci liczb takich jak [5,3,3,1]
lub jako powtarzający się symbol jednoargumentowy jak [[1,1,1,1,1], [1,1,1], [1,1,1], [1]]
lub "XXXXX XXX XXX X"
. Możesz oczekiwać, że lista zostanie posortowana rosnąco lub malejąco, jak chcesz. Lista będzie niepusta i będzie zawierać wyłącznie dodatnie liczby całkowite.
Wyjście: iloczyn długości haka, który jest dodatnią liczbą całkowitą. Nie martw się o przepełnienie liczb całkowitych lub środowisko wykonawcze.
Wbudowane funkcje specyficzne dla schematów Younga lub partycji całkowitych są niedozwolone.
Przypadki testowe:
[1] 1
[2] 2
[1, 1] 2
[5] 120
[2, 1] 3
[5, 4, 3, 2, 1] 4465125
[5, 3, 3, 1] 115200
[10, 5] 798336000
{ee::+W%}_q~%z%:+:*
(19 bajtów) Format wejściowy:[[1][1 1 1][1 1 1][1 1 1 1 1]]