Помогите решить задачу на python или c++

Уже неделю не могу решить эту задачу очень надеюсь на помощь в её решении. Вот условие:

Для пассажиров кольцевой железнодорожной линии, построенной в столице Труляляндии, существует следующая система абонементных билетов. Заплатив ai труляляндских тугриков, пассажир получает право проезда от станции 0 до станции i (и только до неё). Таким образом, право проезда на две станции i и j даёт абонементный билет стоимостью ai+aj. Так как, кроме станции 0, на кольцевой линии находятся ещё n станций, то всего существует 2^n различных абонементов (включая и бесплатный абонемент со станции 0 до самой себя), отличающиеся множеством станций, до которых они дают проезд. Вам дана стоимость каждого из 2^n абонементов. Требуется восстановить ai или сообщить, что при передаче списка стоимостей абонементов произошла ошибка и ни при каких ai указанные стоимости не могут быть сформированы.

Формат ввода: Первая строка содержит одно целое число n (1 ≤ N ≤ 18) — количество станций (кроме станции 0), находящихся на линии. Каждая их последующих 2^n строк содержит одно целое число — стоимость очередного абонемента (0 ≤ p ≤ 2^28).

Формат вывода: Выведите n целых чисел в неубывающем порядке — значения ai. Если вариантов несколько, выведите любой.

Если решения нет, выведите текст “impossible”.

Пример 1

Ввод Вывод

1

0 5

5

Пример 2

Ввод Вывод

3

7 5 2 4 1 6 3 0

1 2 4

Пример 3

Ввод Вывод

2

0 1 2 4

impossible



Ответы (0 шт):