Detalii evaluare #52909877

Rezumat problemă

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

Detalii

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 Cristiana Balcanu (pancakes)
Fișier polihroniade.cpp Dimensiune 2.57 KB
Data încărcării 12 Octombrie 2024, 15:52 Scor / rezultat Eroare de compilare

Evaluare


Mesaj 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
                  ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Polihroniade face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.