Liczba głosów , którą nazwiemy B , to liczba sposobów na uporządkowanie liczb od 1 do B (B + 1) / 2 w trójkąt, tak aby każdy rząd i kolumna były w dowolnej kolejności. Pierwsze cztery numery głosowania to:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
wynosi 2, co oznacza, że istnieją 2 sposoby ułożenia liczb od 1 do 3(3+1)/2 = 6
w takim trójkącie:
1 1
2 3 or 2 4
4 5 6 3 5 6
Aby uzyskać więcej informacji, zobacz wpis sekwencji OEIS .
Twoim wyzwaniem, biorąc pod uwagę trójkąt do głosowania, jest sprawdzenie jego poprawności. Jeśli spełnia warunki trójkąta do głosowania (liczba wierszy i kolumn rośnie), należy wypisać, ile innych sposobów (wyłączając ten na wejściu), można poprawnie ustawić trójkąt. Jeśli trójkąt wejściowy jest niepoprawnie skonstruowany, nie powinieneś nic generować.
Końcowe znaki nowej linii są dozwolone.
Wejście
Trójkąt liczb, który może, ale nie musi, być ważnym trójkątem do głosowania. Na przykład:
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
Wynik
Jeśli dane wejściowe to prawidłowy trójkąt do głosowania, pozostała liczba sposobów na ułożenie tych samych liczb w ważnym trójkącie do głosowania. Jeśli dane wejściowe nie są prawidłowym trójkątem do głosowania, nic. Na przykład powyższe dane wejściowe generują te dane wyjściowe ( <nothing>
jest symbolem zastępczym dla rzeczywistej pustej produkcji):
1 # the same as a(3)-1
<nothing>
<nothing>
<nothing>
33591 # the same as a(6)-1
Punktacja
To jest golf golfowy : jak zwykle wygrywa najmniej bajtów. Tiebreaker jest najwcześniej opublikowany.
1/4 5/2 3 6
ważny?