Um diagrama Young é um arranjo de caixas em linhas justificadas à esquerda e colunas justificadas na parte superior. Para cada caixa, todos os espaços acima e à esquerda estão ocupados.
XXXXX
XXX
XXX
X
O comprimento do gancho de uma caixa é o número de caixas à sua direita na linha e abaixo da coluna, também contando uma vez. Por exemplo, a segunda caixa tem um comprimento de gancho de 6:
X****
X*X
X*X
X
Aqui estão todos os comprimentos de gancho:
86521
532
421
1
Seu objetivo é calcular o produto dos comprimentos do gancho, aqui 8*6*5*2*1*5*3*2*4*2*1*1 = 115200
.
(Leia sobre a fórmula do comprimento do gancho, se você estiver interessado em saber por que essa expressão é importante.)
Entrada: Uma coleção de tamanhos de linha como números como [5,3,3,1]
ou como um símbolo unário repetido como [[1,1,1,1,1], [1,1,1], [1,1,1], [1]]
ou "XXXXX XXX XXX X"
. Você pode esperar que a lista seja classificada crescente ou decrescente, conforme desejar. A lista não ficará vazia e conterá apenas números inteiros positivos.
Saída: o produto do comprimento do gancho, que é um número inteiro positivo. Não se preocupe com estouros de número inteiro ou tempo de execução.
Built-ins que lidam especificamente com diagramas Young ou partições inteiras não são permitidos.
Casos de teste:
[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 bytes) Formato de entrada:[[1][1 1 1][1 1 1][1 1 1 1 1]]