$$ \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.

Размена групе битова

vreme memorija ulaz izlaz
1 s 64 Mb standardni izlaz standardni ulaz

Написати програм који за дате бројеве \(a\), \(b\), \(p\), \(n\), размењује \(n\) узастопних битова између бројева \(a\) и \(b\), почевши од позиције \(p\) (бројећи позиције од 1 слева).

Улаз

У првој линији стандардног улаза се налази ненегативан цео број \(a\), мањи од \(2^{64}\). У другој линији стандардног улаза се налази ненегативан цео број \(b\), мањи од \(2^{64}\). У трећој линији је цео број \(p\), такав да \(1 \leq p \leq 64\). У четвртој линији је природан број \(n\), такав да \(p + n \leq 65\).

Излаз

у првој линији стандардног излаза исписати ненегативан цео број, који се добија када се у броју \(a\) назначена група битова замени одговарајућим битовима броја \(b\). У другој линији исписати ненегативан цео број, који се добија када се у броју \(b\) назначена група битова замени одговарајућим битовима броја \(a\).

Пример

Улаз

500 350 54 7

Излаз

340 510

Објашњење

Бинарни записи бројева 500 и 350 су редом 0001 1111 0100 и 0001 0101 1110. На следећој шеми дати су 64-битни записи бројева 500 и 350 са означеним бројањем позиција. Позиције поменуте групе од 7 битова су маркиране знацима X. На тим местима дати бројеви размењују битове. На крају су дати 64-битни записи бројева са размењеним битовима.

p = 54 10 20 30 40 50 | 60 | | | | | | | | 0000000000000000000000000000000000000000000000000000000111110100 = 500 0000000000000000000000000000000000000000000000000000000101011110 = 350 XXXXXXX 0000000000000000000000000000000000000000000000000000000101010100 = 340 0000000000000000000000000000000000000000000000000000000111111110 = 510

Вредности бинарних записа 1 0101 0100 и 1 1111 1110 су редом једнаке 340 и 510.

Morate biti ulogovani kako biste poslali zadatak na evaluaciju.