Учитывая добавленную пирамиду , определите, можно ли ее решить. Дополнительная пирамида состоит из слоев , каждый из которых на одно число меньше, чем тот, что под ним. Слой обозначается как . является базовым слоем, а является слоем поверх . - го числа обозначается как . - крайнее левое число , а - число справа от . Вы можете визуализировать находящийся сверху и в середине, отсюда и название «дополнительнаяпирамида».
- , то есть, каждое число в пирамиде является положительным целым числом от нуля.
- , то есть каждое число, не входящее в базовый слой пирамиды, является суммой двух чисел под ней.
- Если имеет чисел, имеет чисел, поэтому является самым правым числом . Проще говоря, каждый слой имеет на одно число меньше, чем слой под ним.
Дополнение пирамида головоломка является дополнением пирамиды с некоторыми удаленными числами (заменены ). Его решение является дополнением пирамиды , где , то есть числа, которые изначально присутствовали в головоломке, остались без изменений. Такая головоломка может иметь более одного решения.
Ваша задача, учитывая дополнительную пирамидальную головоломку, определить, есть ли у нее одно решение.
вход
Вы можете получить ввод в любой из следующих форм, но будьте последовательны:
- Массив слоев.
- Массив слоев, имеющих форму пирамиды, с использованием непротиворечивого целочисленного значения в качестве разделителя между элементами (используется только один раз каждый раз), а также заполнения слева и справа. Разделитель и отступ должны быть одинаковыми.
- Массив слоев с одинаковым допустимым отступом справа или слева (в этом случае вы должны быть согласованным и не смешивать отступы справа и слева).
Обратите внимание, что для представления пропущенного числа необходимо использовать непротиворечивое значение, которое не является строго положительным целым числом; это значение нельзя использовать в качестве отступа. Кроме того, вы можете взять объединенные слои (вы можете разделить их), и порядок может быть либо от основания к вершине, либо от вершины к основанию.
Выход
Одно из двух последовательных различных значений, где одно представляет наличие уникального решения, а другое - отсутствие решения или наличие нескольких решений.
правила
- всегда будет истинным, если , то есть вход гарантированно не будет содержать число поверх двух других чисел, которое не является их суммой, если известны все три числа.
- то есть пирамида будет содержать хотя бы одно известное число.
- Не делай этого .
- Это код-гольф , поэтому выигрывает самый короткий ответ! Однако не позволяйте этому отговаривать вас от публикации решения только потому, что ваш язык «слишком многословен».
Контрольные примеры
Массив со слоями от вершины до основания используется для этих тестовых случаев с 0
представлением ,
[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False
Отработанные примеры
Тестовые случаи работают здесь.
Уникальное решение 1
Шаг 1: .
Шаг 2: .
Шаг 3: .
Шаг 4: .
Шаги 5-6 похожи на 4.
Так что здесь у нас есть уникальное решение.
Уникальное решение 2
Шаг 1: Здесь нет очевидного подхода, поэтому давайте попробуем использовать минимально возможные значения.
Шаги 2-5: похоже, что минимальные значения приводят к решению, поэтому это единственное решение и, следовательно, уникальное.
Подсказка: Существует одна теорема о сложении пирамидальных головоломок, связанных с этой загадкой, которую вы можете доказать, если подумаете.
Уникальное решение 3
Это явно уникальное решение.
Нет решения 1
, поэтому решения не существует.
Нет решения 2
, что является противоречием, поэтому решения не существует.
Неуникальное решение
Два решения:
Поскольку существует как минимум два решения, уникального решения не существует.