Pagini recente » Diferente pentru utilizator/drastik intre reviziile 53 si 52 | Diferente pentru utilizator/atatomir intre reviziile 228 si 229 | Diferente pentru problema/operatie intre reviziile 4 si 3
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="operatie") ==
Tică este un mare fan al operaţiilor pe biţi. într-o seară, pentru a scăpa de monotonie, acesta a luat un şir {_v_} de {*N*} numere naturale, strict mai mici decât {_2{^_B_^}_}, pe baza căruia a construit o matrice {_w_} de {*N*} linii şi {*N*} coloane, după următoarea regulă:
Poveste şi cerinţă...
w[i][j] = {
w[i] ^ w[j] daca (i + j) % 4 = 0
w[i] & w[j] daca (i + j) % 4 != 0 dar (i + j) par
w[i] -> w[j] daca (i + j) impar
}
Prin '^' şi '&' se înţeleg operaţiile de XOR pe biţi şi respectiv de AND pe biţi.
Prin x -> y inţelegem urmăroarea operaţie:
- se consideră reprezentările binare ale lui x şi y pe {*B*} de biţi
- se efectuează implicaţia logica bit cu bit
- rezultatul se converteşte înapoi în baza 10
- implicaţia logică acţionează după regula:
- 0 -> 0 = 1
- 0 -> 1 = 1
- 1 -> 0 = 0
- 1 -> 1 = 1
De exemplu, dacă B = 2 atunci 3 -> 1 = 1.
A doua zi, Tică îi arată foaia pe care este descrisă matricea {*w*} prietenului său Ionel şi îl provoaca pe acesta să ghicească şirul de numere iniţial. Totuşi există posibilitatea ca matricea pe care Tică i-o înmânează lui Ionel să nu poată fi soluţie pentru niciun şir de numere ce respectă proprietăţile de mai sus.
Cunoscând numerele *N* şi *B*, precum şi matricea *w*, scieţi un program care să îl ajute pe Ionel să determine o posibilă soluţie pentru şirul *v* sau să specifice dacă o astfel de soluţie nu există.
h2. Date de intrare
Fişierul de intrare $operatie.in$ ...
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.