Pagini recente » Cod sursa (job #1214502) | Monitorul de evaluare | Cod sursa (job #390666) | Cod sursa (job #1829009) | Diferente pentru problema/keymess intre reviziile 51 si 46
Nu exista diferente intre titluri.
Diferente intre continut:
Singura ta unealtă este o maşinărie ciudată şi pe jumătate stricată, numită Oracolul Bitwise.
Dacă îi oferi două chei **diferite** $i$ şi $j$, în loc să îţi spună exact ce sunt, maşinăria va spune AND-ul bitwise al numerelor lor:
$query(i, j) = a{~i~} & a{~j~}$
$query(i, j) = a[i] & a[j]$
Sarcina ta: reconstruieşte întreaga permutare amestecată de chei $a{~1~}, a{~2~}, … a{~n~}$ folosind numărul minim posibil de întrebări către Oracol.
* $? i j$
După fiecare astfel de query interactorul vă va răspunde în stdin cu numărul $(a{~i~} & a{~j~})$.
După fiecare astfel de query interactorul vă va răspunde în stdin cu numărul $(a[i] & a[j])$.
Pentru a da un răspuns, se afişează o linie în următorul format:
De asemenea, dacă interactorul primeşte mai mult de 10^6^ query-uri in total programul va fi terminat şi veţi primi verdictul "Prea multe queryuri".
!problema/keymess?punctare.png!
Operatorul & (AND) este un operator binar care are ca rezultat numărul obţinut prin conjuncţia fiecărei perechi de biţi ce apar în reprezentarea în memorie a operanzilor:
Operatorul de conjuncţie biţi & (AND) este un operator binar care are ca rezultat numărul obţinut prin conjuncţia fiecărei perechi de biţi ce apar în reprezentarea în memorie a operanzilor:
$0 & 0 = 0$
$0 & 1 = 0$
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.