Упис групе битова

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

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

Улаз

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

Излаз

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

Пример

Улаз

2448 53 4 6

Излаз

1680

Објашњење

Бинарни запис броја 2448 је 100110010000. На следећој шеми дат је 64-битни запис броја 2448 са означеним бројањем позиција. Позиције поменуте групе од 4 бита су маркиране знацима X. На та места треба уписати бинарни запис броја 6 користећи 4 бинарне цифре, тј. 0110. На крају је дат 64-битни запис резултата.

p = 53 10 20 30 40 50 | 60 64 | | | | | | | | 0000000000000000000000000000000000000000000000000000100110010000 XXXX 0000000000000000000000000000000000000000000000000000011010010000

Вредност бинарног записа 11010010000 једнака је 1680.

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