Номер бюлетеня , який ми позначимо B , - це кількість способів упорядкування чисел від 1 до B (B + 1) / 2 в трикутник, таким чином, щоб кожен рядок і стовпець знаходилися в будь-якому порядку, що збільшується. Перші чотири бюлетені:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
дорівнює 2, що означає, що існує два способи впорядкування чисел від 1 до 3(3+1)/2 = 6
такого трикутника:
1 1
2 3 or 2 4
4 5 6 3 5 6
Для отримання детальної інформації див. Запис послідовності OEIS .
Ваша задача, задана трикутником для голосування, - перевірити її правильність. Якщо він відповідає умовам трикутника виборчого бюлетеня (рядки та стовпці збільшуються), слід вивести, скільки інших способів (виключаючи той, що знаходиться на вході) існує, щоб правильно розташувати трикутник. Якщо вхідний трикутник неправильно побудований, нічого не слід виводити.
Доступні нові рядки дозволені.
Вхідні дані
Трикутник чисел, який може бути або не бути дійсним трикутником для голосування. Наприклад:
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
Вихідні дані
Якщо вхід є дійсним трикутником для голосування, що залишилася кількість способів розташування однакових чисел у дійсному трикутнику для голосування. Якщо введення не є дійсним трикутником для голосування, нічого. Наприклад, наведені вище введення дають ці результати ( <nothing>
є заповнювачем для фактичного порожнього виводу):
1 # the same as a(3)-1
<nothing>
<nothing>
<nothing>
33591 # the same as a(6)-1
Оцінка балів
Це код-гольф : як завжди, виграє найменший байт. Tiebreaker є найбільш раннім розміщенням.
1/4 5/2 3 6
дійсний?