eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Цифровой турнир

Цифровой турнир

Ваш друг F. получил в подарок набор, состоящий из $2^n$ натуральных чисел. Учитывая тот факт, что ваш друг F. часто принимает участие в футбольных турнирах, он решил организовать турнир для своих $2^n$ натуральных чисел. Пример турнира изображен ниже. Турнир проводится парами, где большее из двух чисел переходит на более высокий уровень. Уровни обозначаются числами от $0$ до $n$, где самый высокий уровень обозначается цифрой $0$. \includegraphics{https://static.eolymp.com/content/mg/mg6uejhn0l16b86c054vm3hjms.gif} Так как у Вашего друга F. нет времени организовывать все турниры, он хочет знать для каждого числа из исходного набора самый высокий уровень (наименьшее число уровня), на котором может оказаться число, при любой перестановке чисел во входном массиве. \InputFile Первая строка содержит натуральное число $n\:(1 \le n \le 20)$. Следующая строка содержит $2^n$ натуральных чисел из интервала $[1; 10^9]$ --- элементы множества. \OutputFile Выведите в одной строке $2^n$ чисел: метки самого высокого уровня (наименьшие метки), на которых может оказаться число, в том порядке, в котором они были заданы во входных данных.
Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
2
1 4 3 2
Вихідні дані #1
2 0 1 1 
Вхідні дані #2
4
5 3 2 6 4 8 7 1 2 4 3 3 6 4 8 1
Вихідні дані #2
1 2 2 1 1 0 1 3 2 1 2 2 1 1 0 3 
Вхідні дані #3
1
1 1
Вихідні дані #3
0 0