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

Gray Code

Gray Code

Коды Грея представляют собой двоичную систему нумерации, в которой два последовательных значения отличаются только в одном бите. Каждый код \textbf{N}-битовых кодов Грея содержит \textbf{N} бит. Наиболее простой случай при \textbf{N} = \textbf{1}, когда кодами Грея являются \textbf{0} и \textbf{1}. Пусть имеется набор \textbf{N}-битовых кодов Грея. Тогда \textbf{N + 1} - битовые коды Грея строятся довольно просто. Выпишем имеющиеся коды в столбик, подведем линию под последним кодом, и "отразим" существующие коды под линией. То есть продублируем список в обратном порядке. Добавим \textbf{0} бит перед исходными кодами и \textbf{1} бит перед только что "отраженными". (поэтому коды Грея называются также "отраженными бинарными кодами.") Рассмотрим построение кодов Грея для \textbf{N} = \textbf{2}: \includegraphics{https://static.e-olymp.com/content/e7/e71a245aa70a214e0054bbbd15b01a2c816a6189.jpg} Список кодов Грея для \textbf{N} = \textbf{2} имеет вид: \textbf{00}, \textbf{01}, \textbf{11}, \textbf{10}. Вот как можно сгенерировать коды Грея для \textbf{N} = \textbf{3}: \includegraphics{https://static.e-olymp.com/content/2a/2a82306f7bc85e05c8bd4d2760df1a23f2eb5df4.jpg} Вам следует вычислить и вывести только \textbf{k}-ый код \textbf{N}-битовых кодов Грея. Коды нумеруются с \textbf{0}. Если \textbf{N} = \textbf{3} и \textbf{k} =\textbf{ 4}, то программа должна вывести \textbf{110}. \InputFile Состоит из нескольких тестов. Каждый тест представляет собой одну строку, содержащую значения \textbf{N }(\textbf{1} ≤ \textbf{N} ≤ \textbf{72}) и \textbf{k} (\textbf{0} ≤ \textbf{k} ≤ \textbf{2^N−1}). Последняя строка содержит два нуля и не обрабатывается. If it isn't immediately obvious from the preceding text, note that the value of \textbf{k} may not fit in a \textbf{32} bit or even a \textbf{64}bit integer. It should also be noted that you will not want to compute all \textbf{2^N} gray code values, but focus your attention on the computation of \textbf{only} the \textbf{k}-th such value. \OutputFile For each input case display the case number (\textbf{1}, \textbf{2}, …), the values of \textbf{N} and \textbf{k}, and the \textbf{k}-th Gray code value (labeled as "\textbf{g}'). Follow the format shown in the samples below.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3 4
4 13
10 1023
12 1000
0 0
Выходные данные #1
Case 1:
  N = 3
  k = 4
  g = 110

Case 2:
  N = 4
  k = 13
  g = 1011

Case 3:
  N = 10
  k = 1023
  g = 1000000000

Case 4:
  N = 12
  k = 1000
  g = 001000011100

Источник ACM North Central North America Regional Programming Contest, November 12, 2011