Время

14:00:41
24 May 2012
Версия для печати

Коды Грея

   Сгенерируем последовательность чисел в двоичной системе счисления. Генерацию начнем с последовательности

0
1

   Отобразим последовательность симметрично относительно горизонтальной прямой, и припишем ноль спереди к числам первой половины и единицу к числам второй половины. Получим

00
01
11
10

   Повторив процесс еще раз, получим 8 чисел

000   0
001   1
011   3
010   2
110   6
111   7
101   5
100   4

   Соответствующие десятичные числа для каждого сгенерированного двоичного числа приведены справа. 

   Построенные последовательности называются отображенными кодами Грея соответственно для 1, 2 и 3 бит. Кодами Грея для n бит называется последовательность из 2n разных n-битовых целых чисел с тем свойством, что любые две соседние последовательности отличаются друг от друга только в одном бите. Отображенные коды Грея строятся как показано выше.


Технические условия

   Входные данные

   Первая строка содержит количество тестов N (не более 250000). Каждый тест состоит из одной строки, которая содержит два целых числа n (1n30) и k (0k < 2n).

   Выходные данные

   Для каждого теста в отдельной строке вывести число в k-ой позиции n-битовых отображенных кодов Грея.


Информация о задаче

Лимит времени: 1 секунда
Лимит памяти: 64 MB
Баллы за пройденный тест: 20
Сложность: 3% 103/106
Классификация: Итерация и рекурсия

Пример

Пример входных данных

14
1 0
1 1
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
3 4
3 5
3 6
3 7

Пример выходных данных

0
1
0
1
3
2
0
1
3
2
6
7
5
4


← Разбиение треугольника Список задач Нечетные делители →