Eine Wahlnummer , die wir als B bezeichnen , gibt die Anzahl der Möglichkeiten an, die Zahlen von 1 bis B (B + 1) / 2 in einem Dreieck anzuordnen, sodass jede Zeile und Spalte in aufsteigender Reihenfolge angezeigt wird. Die ersten vier Wahlnummern sind:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
ist 2, was bedeutet, dass es zwei Möglichkeiten gibt, die Zahlen von 1 bis 3(3+1)/2 = 6
in einem solchen Dreieck anzuordnen:
1 1
2 3 or 2 4
4 5 6 3 5 6
Weitere Informationen finden Sie im OEIS-Sequenzeintrag .
Angesichts eines Wahldreiecks besteht Ihre Herausforderung darin, die Richtigkeit zu überprüfen. Wenn es die Bedingungen eines Stimmzetteldreiecks erfüllt (Zeilen und Spalten nehmen zu), sollten Sie ausgeben, wie viele andere Möglichkeiten (mit Ausnahme der in der Eingabe) vorhanden sind, um das Dreieck richtig anzuordnen. Wenn das Eingabedreieck falsch konstruiert ist, sollten Sie nichts ausgeben.
Nachgestellte Zeilenumbrüche sind zulässig.
Eingang
Ein Dreieck von Zahlen, das ein gültiges Wahldreieck sein kann oder nicht. Beispielsweise:
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
Ausgabe
Wenn es sich bei der Eingabe um ein gültiges Wahldreieck handelt, wird die verbleibende Anzahl von Möglichkeiten zum Anordnen derselben Zahlen in einem gültigen Wahldreieck angegeben. Wenn die Eingabe kein gültiges Wahldreieck ist, nichts. Zum Beispiel erzeugen die obigen Eingaben diese Ausgaben ( <nothing>
ist ein Platzhalter für eine tatsächliche leere Ausgabe):
1 # the same as a(3)-1
<nothing>
<nothing>
<nothing>
33591 # the same as a(6)-1
Wertung
Das ist Code-Golf : Wie üblich gewinnt die niedrigste Byteanzahl. Tiebreaker ist am frühesten gebucht.
1/4 5/2 3 6
gültig?