Un numéro de bulletin de vote , que nous appellerons B , est le nombre de façons d'organiser les numéros de 1 à B (B + 1) / 2 dans un triangle, de sorte que chaque ligne et colonne est dans un ordre croissant. Les quatre premiers numéros de bulletin de vote sont:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
est 2, ce qui signifie qu'il existe 2 façons d'organiser les nombres de 1 à 3(3+1)/2 = 6
dans un tel triangle:
1 1
2 3 or 2 4
4 5 6 3 5 6
Voir l' entrée de séquence OEIS pour plus de détails.
Votre défi, étant donné un triangle de vote, est de vérifier son exactitude. S'il satisfait aux conditions d'un triangle de vote (les lignes et les colonnes augmentent), vous devez afficher le nombre d' autres façons (à l'exception de celle en entrée) qu'il existe pour organiser correctement le triangle. Si le triangle d'entrée n'est pas construit correctement, vous ne devez rien produire.
Les sauts de ligne sont autorisés.
Contribution
Un triangle de chiffres, qui peut être ou non un triangle de scrutin valide. Par exemple:
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
Production
Si l'entrée est un triangle de scrutin valide, le nombre restant de façons d'organiser les mêmes nombres dans un triangle de scrutin valide. Si l'entrée n'est pas un triangle de vote valide, rien. Par exemple, les entrées ci-dessus produisent ces sorties ( <nothing>
est un espace réservé pour une sortie vide réelle):
1 # the same as a(3)-1
<nothing>
<nothing>
<nothing>
33591 # the same as a(6)-1
Notation
C'est le code-golf : comme d'habitude, le nombre d'octets le plus bas l'emporte. Tiebreaker est le plus tôt publié.
1/4 5/2 3 6
valide?