Informatică, întrebare adresată de anastasia286, 7 ani în urmă

O valoare filtrează două șiruri dacă există doi termeni care au acea valoare, unul fiind în primul șir, iar celălalt în al doilea șir.
Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul [2,20]: m, n și elementele unui tablou bidimensional cu m linii și n coloane, cu proprietatea că nu există două elemente egale situate pe aceeași linie sau pe aceeași coloană.
Programul afișează pe ecran valorile care pot filtra șirul format din primele n-1 elemente de pe prima linie, respectiv șirul format din ultimele m-1 elemente ale ultimei coloane a tabloului, ca în exemplu. Valorile sunt afișate într-o ordine oarecare, separate prin câte un spațiu, sau mesajul nu exista, dacă nu există astfel de valori.
Exemplu: pentru m=5, n=4 și tabloul alăturat, se afișează pe ecran, nu neapărat în
această ordine, numerele 4 7
4 5 7 2
2 7 3 6
7 6 4 0
6 9 8 7
8 0 5 4

Răspunsuri la întrebare

Răspuns de scannedf
1

Răspuns:

#include <iostream>

#include <unordered_set>

using namespace std;

int main() {

int m, n;

cin >> m >> n;

// Citim matricea.

int matrix[m][n];

for (int i = 0; i < m; i++) {

for (int j = 0; j < n; j++) {

cin >> matrix[i][j];

}

}

// Cream un set care să conțină elementele primei linii.

unordered_set<int> first_row;

for (int i = 0; i < n - 1; i++) {

first_row.insert(matrix[0][i]);

}

// Cream un set care să conțină elementele ultimei coloane.

unordered_set<int> last_column;

for (int i = 0; i < m - 1; i++) {

last_column.insert(matrix[i][n - 1]);

}

// Intersectăm cele două seturi.

unordered_set<int> intersect;

for (auto& x : first_row) {

if (last_column.count(x) > 0) {

intersect.insert(x);

}

}

// Dacă intersect nu conține elemente, nu există valori care pot filtra cele

// două șiruri.

if (intersect.empty()) {

cout << "nu exista";

} else {

// Afișăm elementele intersect.

for (auto& x : intersect) {

cout << x << " ";

}

}

return 0;

}

Pentru a compile și a rula programul, puteți utiliza comanda g++ (dacă aveți GCC instalat):

Copy code

g++ program.cpp -o program

./program

Sper că acest răspuns vă este de ajutor. Dacă aveți întrebări sau doriți clarificări, nu ezitați să mă întrebați.


anastasia286: Ai putea rezolva fara alte biblioteci adaugate?
Alte întrebări interesante