Давши піраміду додавання , визначте, чи можна її вирішити. Піраміда додавання складається з шарів , кожен з яких на одне число менше, ніж той, що знаходиться під ним. Шар символізується як . - базовий шар, а - шар на вершині . й номер позначається як . - найлівіше число , а - число праворуч від . Ви можете візуалізувати знаходиться поверхі посередині, звідси і назва " піраміда додавання ".
- , тобто кожне число в піраміді є ненульовим додатним цілим числом.
- , тобто кожне число, що не знаходиться на базовому шарі піраміди, є сумою два числа під ним.
- Якщо має чисел, має числа, тому - це найправіше число . Простіше кажучи, кожен шар має на одне число менше, ніж шар під ним.
Додаток піраміди-головоломки - це додаткова піраміда з деякими числами, видаленими (заміненими ). Її рішення - це піраміда додавання , де , тобто числа, які були спочатку присутні у головоломці залишилися без змін. Така головоломка може мати більше одного рішення.
Ваше завдання задається головоломкою з додатковою пірамідою, щоб визначити, чи має вона саме одне рішення.
Вхідні дані
Ви можете отримати інформацію в будь-якій з наступних форм, але будьте послідовними:
- Масив шарів.
- Масив шарів, що мають форму піраміди, використовуючи послідовне непозитивне ціле значення як роздільник між елементами (використовується лише один раз кожного разу), а також лівою та правою накладками. Сепаратор і прокладка повинні бути однаковими.
- Масив шарів з послідовною дійсною правою чи лівою підкладкою (ви повинні бути послідовними, а не змішувати правий і лівий накладки в цьому випадку).
Зауважте, що для представлення відсутнього числа необхідно використовувати послідовне значення, яке не є суто позитивним цілим числом; це значення не можна використовувати як накладку. Крім того, ви можете взяти шари, з'єднані (ви можете ще їх розділити), і впорядкування може бути або від основи до верху, або від верху до основи.
Вихідні дані
Одне з двох послідовних відмінних значень, де одне представляє наявність унікального рішення, а інше відсутність рішення або наявність більше одного рішення.
Правила
- завжди буде істинним, якщо , тобто вхід гарантується, що не буде містити номер над двома іншими числами, що не є їх сумою, якщо всі три числа відомі.
- , тобто піраміда буде містити щонайменше одне відоме число.
- Не роби цього .
- Це код-гольф , тому найкоротша відповідь виграє! Однак не дозволяйте це відштовхувати вас від публікації рішення лише тому, що ваша мова "занадто багатослівна".
Тестові справи
Масив із шарами зверху до основи використовується для цих тестових випадків, із 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: .
Це, очевидно, унікальне рішення.
Немає рішення 1
, тому рішення немає.
Немає рішення 2
Кроки 1-2: .
Звідси випливає, що , що є суперечливістю, тому рішення немає.
Не унікальне рішення
Два рішення:
Оскільки існує щонайменше два рішення, немає єдиного рішення.