$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Грејов код

време меморија улаз излаз
1 s 64 Mb стандардни излаз стандардни улаз

Грејов кôд реда \(n\) подразумева ређање свих \(n\)-тоцифрених бинарних записа тако да се свака два суседна записа разликују тачно у једном биту (при чему ово важи и за први и последњи запис, тако да се може сматрати да су сви записи поређани у круг).

Грејов кôд дужине \(0\) садржи само један елемент и то празну ниску. Грејов кôд дужине \(n+1\) се може добити од кода дужине \(n\) тако што се испред сваког броја у коду дужине \(n\) допише цифра \(0\), затим се редослед елемената у коду дужине \(n\) обрне и на сваком броју се на почетак допише цифра \(1\) и два тако добијена низа бројева се споје. Нпр. Грејов кôд реда \(2\) је

00 01 11 10

На основу претходног поступка добијамо Грејов кôд реда \(3\).

0 00 | k 0 01 | 0: 000 0 11 | 1: 001 0 10 v 2: 011 tj. 3: 010 1 10 ^ 4: 110 1 11 | 5: 111 1 01 | 6: 101 1 00 | 7: 100

Заиста, у коду дужине \(n+1\) бројеви у првој половини сви почињу нулом, па се разликују тачно у биту у ком се разликују одговарајући кодови у Грејовом коду дужине \(n\), бројеви у другој половини сви почињу јединицом, па и за њих важи исто, док се последњи број прве и први број друге половине разликују само на почетном биту, а исто важи и за први број прве и последњи број друге половине.

Напиши програм који за дату дужину кода \(n\) и дату позицију \(k\) (\(0 \leq k < 2^n\)) одређује бинарни број који се налази на позицији \(k\) у коду дужине \(n\).

Улаз

Са стандардног улаза се учитава дужина кода \(n\) (\(1 \leq n \leq 32\)) и позиција \(k\) (\(0 \leq k < 2^n\)).

Излаз

На стандардни излаз исписати тражени бинарни број.

Пример 1

Улаз

3 2

Излаз

011

Пример 2

Улаз

30 999999999

Излаз

100110010101111010110100000000

Морате бити улоговани како бисте послали задатак на евалуацију.