#3727
O matrice pătratică de dimensiuni N * N cu N par și elemente din mulțimea {0,1} se numește tablă de șah dacă oricare două celule vecine pe o linie sau pe o coloană au valori diferite (cu alte cuvinte, dacă nu există două valori egale alăturate).
De ziua ei, Victor i-a cumpărat Elisabetei o astfel de matrice A, care nu este neapărat tablă de șah. Aflând despre pasiunea ei, acesta vrea acum să transforme matricea A într-o tablă de șah. Timpul fiind limitat, el poate efectua doar următoarele tipuri de operații asupra matricei:
1. Interschimbă liniile i și j din A (celelalte linii rămân neschimbate, iar valorile din interiorul liniilor i și j rămân neschimbate și își păstrează ordinea). Operația are sens pentru 1 ≤ i, j ≤ N.
2. Interschimbă coloanele i și j din A (celelalte coloane rămân neschimbate, iar valorile din interiorul coloanelor i și j rămân neschimbate și își păstrează ordinea). Operația are sens pentru 1 ≤ i, j ≤ N.
Dorind s-o impresioneze pe Elisabeta, Victor apelează la voi, programatori renumiți, să-l ajutați în a transforma matricea A într-o tablă de șah. Pentru aceasta, Victor are nevoie de următoarele informații:
1. Poate fi transformată matricea A în tablă de șah?
2. Care este numărul minim de operații necesare pentru a duce la îndeplinire acest scop?
3. Care ar fi o succesiune de operații care transformă matricea A într-o tablă de șah?
OJI 2021, clasele XI-XII
| Problema | Polihroniade | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 256 MB
/
Stivă 8 MB
|
| Id soluție | #35358533 | Utilizator | |
| Fișier | polihroniade.cpp | Dimensiune | 276 B |
| Data încărcării | 07 Martie 2022, 08:45 | Scor/rezultat | Eroare de compilare |
polihroniade.cpp:1:12: error: 'h' was not declared in this scope int newH = h, newV = v; ^ polihroniade.cpp:2:5: error: expected unqualified-id before 'if' if (currType == 'H') newH += k; ^ polihroniade.cpp:3:5: error: expected unqualified-id before 'else' else newV += k; ^ polihroniade.cpp:4:5: error: 'retType' does not name a type retType aux2 = solve(newH, newV); ^ polihroniade.cpp:5:5: error: expected unqualified-id before 'if' if (aux2.type == currType) { ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Polihroniade face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.