#3727
Polihroniade
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 | #52909877 | Utilizator | |
Fișier | polihroniade.cpp | Dimensiune | 2.57 KB |
Data încărcării | 12 Octombrie 2024, 15:52 | Scor / rezultat | Eroare de compilare |
polihroniade.cpp:2:2: error: invalid preprocessing directive #decine #decine NN 1005 ^ polihroniade.cpp:9:10: error: 'NN' was not declared in this scope string s[NN]; ^ polihroniade.cpp: In function 'bool linegal(int, int)': polihroniade.cpp:17:12: error: 's' was not declared in this scope if(s[a][i] != s[b][i]) ^ polihroniade.cpp: In function 'bool colegal(int, int)': polihroniade.cpp:27:12: error: 's' was not declared in this scope if(s[i][a] != s[i][b]) ^ polihroniade.cpp: In function 'int cerinta1()': polihroniade.cpp:45:24: error: 's' was not declared in this scope char chr = s[i][j]; ^ polihroniade.cpp:45:18: warning: unused variable 'chr' [-Wunused-variable] char chr = s[i][j]; ^ polihroniade.cpp: In function 'void cerinta2()': polihroniade.cpp:86:14: error: 's' was not declared in this scope char c = s[0][0]; ^ polihroniade.cpp:98:5: error: reference to 'cout' is ambiguous cout << min(nrlin1, nrlin2) + min(nrcol1, nrcol2) << '\n'; ^ polihroniade.cpp:6:10: note: candidates are: std::ofstream cout ofstream cout ("p.out"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from polihroniade.cpp:1: /usr/include/c++/4.8/iostream:61:18: note: std::ostream std::cout extern ostream cout; /// Linked to standard output ^ polihroniade.cpp: In function 'void citire()': polihroniade.cpp:103:5: error: reference to 'cin' is ambiguous cin >> n; ^ polihroniade.cpp:5:10: note: candidates are: std::ifstream cin ifstream cin ("p.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from polihroniade.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ polihroniade.cpp:104:5: error: reference to 'cin' is ambiguous cin.get(); ^ polihroniade.cpp:5:10: note: candidates are: std::ifstream cin ifstream cin ("p.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from polihroniade.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ polihroniade.cpp:106:9: error: reference to 'cin' is ambiguous cin >> s[i]; ^ polihroniade.cpp:5:10: note: candidates are: std::ifstream cin ifstream cin ("p.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from polihroniade.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ polihroniade.cpp:106:16: error: 's' was not declared in this scope cin >> s[i]; ^ polihroniade.cpp: In function 'int main()': polihroniade.cpp:111:5: error: reference to 'cin' is ambiguous cin >> cerinta >> nrt; ^ polihroniade.cpp:5:10: note: candidates are: std::ifstream cin ifstream cin ("p.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from polihroniade.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ polihroniade.cpp:116:13: error: reference to 'cout' is ambiguous cout << cerinta1() << '\n'; ^ polihroniade.cpp:6:10: note: candidates are: std::ofstream cout ofstream cout ("p.out"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from polihroniade.cpp:1: /usr/include/c++/4.8/iostream:61:18: note: std::ostream std::cout extern ostream cout; /// Linked to standard output ^
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ă.