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.
fonte
1/4 5/2 3 6
válido?Respostas:
Gelatina , 20 bytes
Para triângulos de cédula válidos, o tempo de execução e o uso de memória são pelo menos O (n!) , Onde n é o número de entradas do triângulo. Os inválidos são reconhecidos por falhas, imprimindo nada.
Experimente online!
Execução de teste
Localmente, pude verificar se um (4) é calculado corretamente.
Como funciona
fonte
Braquilog , 44 bytes
Experimente online!
Isso ocorre em tempo exponencial duplo, portanto, para casos reais de teste, você precisa acreditar em mim que, teoricamente, produz o resultado correto, para triângulos com comprimento maior ou igual a
3
.Ainda é possível testar casos de teste falsey, que devem terminar rapidamente.
fonte
JavaScript (ES6), 143 bytes
Pesquisa no triângulo uma entrada inválida e, em seguida, usa uma formulação recursiva da fórmula no OEIS para calcular o resultado.
fonte