Profesor Feđa, strastveni ribolovac i obožavalac ronjenja na dah, pronašao je svoj 14. omiljeni hobi - zaboravljanje nizova. Ova novootkrivena disciplina teče na sledeći način:
Na početku, Feđa zamisli niz sa prirodnih brojeva. Nakon toga on na papiru zapiše niz sa tačno brojeva. Članovi niza su dobijeni primenom bitovne operacije (videti napomenu) na sve parove brojeva iz niza , preciznije:
Za svaki uređeni par indeksa (), () iz niza u nizu je zapisana vrednost . Ako je neka vrednost ista za više parova, ona se u nizu pojaljuje tačno onoliko puta koliko ima parova sa tom vrednošću. Ove vrednosti se u nizu mogu javiti u proizvoljnom redosledu.
Naravno, profesor se umorio nakon zapisivanja svih ovih brojeva i u potpunosti zaboravio prvobitno zamišljeni niz . Srećom na papiru mu je ostao zapisan niz . Da li možete da pomognete našem dragom profesoru i pronađete izgubljeni niz ?
Opis ulaza
U prvoj liniji standardnog ulaza nalazi se jedan prirodan broj , dužina izgubljenog niza . U drugoj liniji standardnog ulaza nalazi se prirodnih brojeva, elementi niza opisanog u tekstu zadatka.
Opis izlaza
U jedinoj liniji standardnog izlaza ispisati prirodnih brojeva, elemente izgubljenog niza . Garantuje se da su ulazni podaci takvi da postoji bar jedan odgovarajući niz. Ako postoje više mogućih nizova, ispisati bilo koje rešenje.
Primer 1
Ulaz
3
5 4 2 3 1 6
Izlaz
1 4 2
Objašnjenje primera
Izgubljeni niz ima člana i treba ga pronaći koristeći niz . Jedan od mogućih nizova je . Ako primenimo bitovnu operaciju na sve parove brojeva u nizu dobijamo:
Ograničenja
U svim test primerima važe ograničenja
Test primeri su podeljeni u disjunktne grupe:
- U test primerima vrednim poena važe ograničenja i .
- U test primerima vrednim poena važi ograničenje .
- U test primerima vrednim poena nema dodatnih ograničenja.
Napomena
Operator disjunkcije u Pascal-u je označen sa or
, dok u C++ ga zapisujemo pomoću simbola |
. Ova operacija se za nenegativne cele brojeve definiše na sledeći način. Prvo se brojevi zapišu u binarnom zapisu. Ukoliko jedan broj ima manje cifara od drugog, dopisuju mu se vodeće nule sve dok ne budu imali isti broj binarnih cifara. Tako se dobijaju dva niza binarnih cifara, označimo ih sa i . Zatim se za svaku poziciju računa pomoću sledećih pravila:
- Za važi
- Za važi
- Za važi
- Za važi
Niz binarnih cifara (koji možda ima vodeće nule) je binarni zapis rezultata, odnosno broja .
Comments