В Ханое несправедливо запретили класть самый маленький диск (номер 1) на средний колышек (номер 2).
Решите головоломку с учетом этих ограничений. Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.
Вводится натуральное число - количество дисков.
Выведите ответ на задачу.
2
1 1 3 2 1 2 1 3 1 2 2 3 1 1 3
Первоначально все диски лежат на стержне номер 1. Переместите диски с нечетными номерами на стержень номер 2, а с четными номерами - на стержень номер 3.
Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.
Вводится натуральное число - количество дисков.
Выведите ответ на задачу.
2
1 1 2 2 1 3
3
1 1 2 2 1 3 1 2 3 3 1 2 1 3 2
Как и в предыдущих задачах, дано три стержня, на первом из которых надето \(n\) дисков различного размера. Необходимо их переместить на стержень 3 по следующим правилам:
Самый маленький диск (номер 1) можно в любой момент переложить на любой стержень.
Перемещение диска номер 1 со стержня a
на стержень b
будем обозначать 1 a b
.
Можно поменять два диска, лежащих на вершине двух стержней, если размеры этих дисков
отличаются на 1. Например, если на вершине стержня с номером a
лежит
диск размером 5, а на вершине стержня с номером b
лежит диск размером
4, то эти диски можно поменять местами. Такой обмен двух дисков будем обозначать
0 a b
(указываются номера стержней, верхние диски которых обмениваются местами).
Для данного числа дисков \(n\), не превосходящего 10, найдите решение головоломки. вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000.
Вводится натуральное число - количество дисков.
Выведите ответ на задачу.
2
1 1 3 0 1 3 1 1 3
1
1 1 3
Дана полоска из клеток, пронумерованных от 1 до N слева направо. Разрешено снимать или ставить фишку на клетку с номером 1 или на клетку, следующую за самой левой из установленных фишек. Изначально полоска пуста. Нужно разместить фишки во всех клетках.
Программа получает на вход количество клеток в полоске \(N\) \((1\le N\le 10)\).
Программа должна вывести последовательность номеров клеток, с которыми совершается действие. Если фишка снимается, то номер клетки должен выводиться со знаком минус. Количество действий не должно превышать \(10^4\). Если существует несколько возможных решений задачи, то разрешается вывести любое.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|---|
3 |
1 2 -1 3 1 |
В небоскребе \(n\) этажей. Известно, что если уронить стеклянный шарик с этажа номер \(p\), то шарик разобьется, и если уронить шарик с этажа номер \(p+1\), то он тоже разобьется. Также известно, что при броске с последнего этажа шарик всегда разбивается.
Вы хотите определить минимальный номер этажа, при падении с которого шарик разбивается. Для проведения экспериментов у вас есть два шарика. Вы можете разбить их все, но в результате вы должны абсолютно точно определить этот номер.
Определите, какого числа бросков достаточно, чтобы заведомо решить эту задачу.
Программа получает на вход количество этажей в небоскребе \(n\)
Требуется вывести наименьшее число бросков, при котором можно всегда решить задачу.
Тесты к этой задаче закрытые.
Комментарий к первому примеру. Нужно бросить шарик со 2-го этажа. Если он разобъется, то бросим второй шарик с 1-го этажа, а если не разобъется - то бросим шарик с 3-го этажа.
Подсказки.
1. Как следует действовать, если шарик был бы только один?
2. Пусть шариков два и мы бросили один шарик с этажа номер \(k\). Как мы будем действовать
в зависимости от того, разобъется ли шарик или нет?
3. Пусть f(n)
- это минимальное число бросков, за которое можно определить
искомый этаж, если бы в небоскребе было n
этажей. Выразите f(n)
через значения f(a)
для меньших значений a
.
4
2
7
3