Um número de cédula , que rotularemos de B , é o número de maneiras de organizar os números de 1 a B (B + 1) / 2 em um triângulo, de modo que cada linha e coluna esteja em ordem crescente. Os quatro primeiros números da cédula são:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
é 2, o que significa que existem 2 maneiras de organizar os números de 1 a 3(3+1)/2 = 6
nesse triângulo:
1 1
2 3 or 2 4
4 5 6 3 5 6
Veja a entrada da sequência OEIS para mais detalhes.
Seu desafio, dado um triângulo eleitoral, é verificar sua correção. Se ele satisfizer as condições de um triângulo eleitoral (linhas e colunas aumentando), você deve mostrar quantas outras maneiras (excluindo a da entrada) existem para organizar o triângulo corretamente. Se o triângulo de entrada for construído incorretamente, você não deverá produzir nada.
Novas linhas à direita são permitidas.
Entrada
Um triângulo de números, que pode ou não ser um triângulo de voto válido. Por exemplo:
1
2 3
4 5 6
1
10 5
9 8 2
7 6 4 3
1
3 2
9
2 11
14 3 5
12 8 1 7
15 13 10 4 6
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
Resultado
Se a entrada for um triângulo de voto válido, o número restante de maneiras de organizar os mesmos números em um triângulo de voto válido. Se a entrada não for um triângulo de voto válido, nada. Por exemplo, as entradas acima produzem essas saídas ( <nothing>
é um espaço reservado para uma saída vazia real):
1 # the same as a(3)-1
<nothing>
<nothing>
<nothing>
33591 # the same as a(6)-1
Pontuação
Este é o código-golfe : como sempre, a menor contagem de bytes vence. O desempatador é o mais antigo publicado.
1/4 5/2 3 6
válido?