Pagini recente » Cod sursa (job #2442238) | Cod sursa (job #1358537) | Cod sursa (job #1602798) | Cod sursa (job #3342921) | Diferente pentru problema/keymess intre reviziile 35 si 51
Nu exista diferente intre titluri.
Diferente intre continut:
!>problema/keymess?keymess2.png!
În tărâmul Ooo, eşti trimis într-o misiune prin Labirintul Biţilor, unde fiecare poartă este încuiată cu o cheie magică. Există exact $N$ chei, fiecare inscripţionată cu un număr de la 0 la $N$-1. Dar, evident, cineva le-a amestecat complet.
În Tărâmul Ooo, eşti trimis într-o misiune prin Labirintul Biţilor, unde fiecare poartă este încuiată cu o cheie magică. Există exact $N$ chei, fiecare inscripţionată cu un număr de la $0$ la $N$-1. Dar, evident, cineva le-a amestecat complet.
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]$
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~}$
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.
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.
h2. Date de intrare
* $? 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:
Funcţia care determină punctajul este următoarea:
Fie qs = numărul de query-uri maxim din unul dintre teste
Fie q = numărul de query-uri maxim din unul dintre teste
|_. Număr query-uri |_. Punctaj |
| qs ≤ 16700 | 100 |
| 16700 < qs ≤ 17700 | e^((1000 - (qs - 16700)) / 334) + 80^ |
| 17700 < qs ≤ 90000 | (-71 / 72300) * qs + (23798 / 241) |
| 90000 ≤ qs < 2^26^ | 10 |
| 2^26^ ≤ qs | $0$ |
| $10^6^ ≤ q$ | $0$ |
| $90000 ≤ q < 10^6^$ | $10$ | |
| $17700 < q ≤ 90000$ | $(-71 / 72300) * qs + (23798 / 241)$ |
| $16700 < q ≤ 17700$ | $e^((1000 - (qs - 16700)) / 334)^ + 80$ |
| $q ≤ 16700$ | $100$ |
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".
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:
!problema/keymess?punctare.png!
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
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:
$0 & 0 = 0$
$0 & 1 = 0$
$1 & 0 = 0$
$1 & 1 = 1$
* Pentru a da flush, puteţi folosi:
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.