LearnToCP
Prijavi se
Navigacija
PočetnaRoad-mapaProblemiO Nama
Teorija
Takmičarsko Znanje
Izbor Radnog Okruženja (IDE)Interaktivni ZadaciOutput-only Zadaci
Osnove
Tvoj Prvi ProgramTipovi podataka, Unos i IzlazC++ sintaksaModuloFunkcijeVektoriMatriceVremenska Složenost Algoritma
Sortiranje
SortiranjeSortiranje PrebrojavanjemRadix Sort
Tehnike Optimizacije
Dva PokazivačaZbir brojeva od 1 do nZbir PrefiksaBinarna PretragaPohlepni AlgoritmiFunkcije Binarne PretrageBinarna Pretraga po RešenjuPodeli, pa Vladaj
Binarni Brojevi
Binarni BrojeviBrojevi u koduOperacije nad BitovimaBitmaske
Matematika
Binarno StepenovanjeProsti BrojeviRastavljanje na proste činioceNZD i NZSEratostenovo SitoModifikovano Sito
Strukture Podataka
Niske (Stringovi)StekRedMapeSkupovi (Set)Red sa PrioritetomKorišćenje Proizvoljnih KriterijumaSegmentna StablaFenvikova StablaSparse TabeleDisjunktni SkupoviSqrt Dekompozicija
Kombinatorika
Pravilo SabiranjaPravilo MnoženjaKombinatorni ObjektiPrincip Uključenja Isključenja
Geometrija
Osnove GeometrijeVektorski i Skalarni ProizvodLinijePoligoniTačke i PoligoniKonveksni Omotač
Rekurzija
PokazivačiRekurzijaGenerisanje Kombinatornih Objekata
Dinamičko Programiranje
O DP-uDP problemiDP nad StablimaDP nad Bitmaskama
Teorija Grafova
GrafoviDFS i BFSNajkraći PuteviStablaTopološko SortiranjeDajkstrin AlgoritamMinimalna Razapinjuća StablaAlgoritmi Najkraćih Puteva
Napredna Teorija Grafova
Dvostruka PovezanostJako Povezane KomponenteBipartitni GrafMaksimalni Protok u GrafuFord-Fulkersonov AlgoritamDualnost Protoka i Minimalnog PresekaTeško-Laka DekompozicijaCentroidna Dekompozicija
Napredne Strukture Podataka
2D i 3D Segmentna StablaLenjo PropagiranjeImplicitna Segmentna StablaPerzistentna Segmentna StablaNajbliži Zajednički PredakTrieBalansirana Binarna Stabla PretrageMoov Algoritam

AND do nule

EasyProblem #36
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

Ceo odgovor odlučuje jedan jedini bit broja n - koji?

Stara mašina ima samo jedan registar. U njega učitaš broj n, a mašina zatim počne da broji unazad: registar radi AND sa n−1, pa sa n−2, pa sa n−3, i tako redom, broj po broj.

Pre ili kasnije registar postane 0, a kada se to desi više nikada ne može da se vrati. Tvoj zadatak je da javiš na kom broju je mašina bila u tom trenutku.

Formalno, odredi najveće k za koje važi

n&(n−1)&(n−2)&…&k=0

gde & označava bitovsku AND operaciju. Vrednost k=0 je dozvoljena - mašini nije problem da izbroji skroz do nule.

Ulaz

U prvom redu ulaza je ceo broj t - broj test primera.
U svakom od narednih t redova nalazi se ceo broj n - broj učitan u registar.

Izlaz

Za svaki test primer ispiši u zasebnom redu najveće takvo k.

Primer

Input
4
2
5
17
1
Output
1
3
15
0

Za n=5 mašina prvo uradi 5&4=4, što još uvek nije 0, a zatim 4&3=0 - dakle stala je na 3. Za n=1 registar sve vreme drži 1 i tek ga 1&0 isprazni, pa je odgovor 0.

Ograničenja

1≤t≤1000
1≤n≤109


Zadatak je adaptiran iz zadatka And Then There Were K, zadatak A sa Codeforces Round 721 (Div. 2).

Pošalji svoje rešenje

Prijavi se da pošalješ rešenje i pratiš svoj napredak.

Prijavi se