Число бюллетеней , который мы будем маркировать B , является количество способов организации числа от 1 до В (В + 1) / 2 в треугольник, таким образом, что каждая строка и столбец в любом порядке возрастания. Первые четыре номера бюллетеня:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
это 2, что означает, что есть 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
действует?Ответы:
Желе , 20 байт
Для допустимых треугольников голосования время выполнения и использование памяти должны быть не менее O (n!) , Где n - количество записей треугольника. Неверные распознаются при сбое, поэтому ничего не печатается.
Попробуйте онлайн!
Тестовый забег
Локально я смог убедиться, что (4) вычислено правильно.
Как это устроено
источник
Брахилог , 44 байта
Попробуйте онлайн!
Это выполняется за двойное экспоненциальное время, поэтому для истинных тестовых случаев вы должны поверить мне, что теоретически это дает правильный результат для треугольников с длиной, большей или равной
3
.Вы все еще можете проверить на фальшивые тесты, которые должны закончиться довольно быстро.
источник
JavaScript (ES6), 143 байта
Ищет в треугольнике неверную запись, а затем использует рекурсивную формулировку формулы в OEIS для вычисления результата.
источник