Se dau mai multe grafuri neorientate, prin matricea de adiacență. Să se verifice despre fiecare graf dacă este complet.
Date de intrare
Fişierul de intrare graf_complet.in
conţine pe prima linie numărul de grafuri G
. Pentru fiecare dintre cele G
grafuri se dă n
și apoi matricea de adiacență, formată din n
linii și n
coloane.
Date de ieşire
Fişierul de ieşire graf_complet.out
va conţine G
linii. Pe fiecare dintre ele se va afla mesajul DA
sau NU
, după cum graful corespunzător este sau nu complet.
Restricţii şi precizări
1 ≤ G ≤ 5
1 ≤ n ≤ 50
Exemplu
graf_complet.in
2 3 0 1 1 1 0 1 1 1 0 4 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0
graf_complet.out
DA NU
Explicație
S-au dat două grafuri. Primul are 3
vârfuri și este complet, al doilea are 4
vârfuri și nu este complet.
SOLUTIE
#include <bits/stdc++.h> using namespace std; ifstream f("graf_complet.in"); ofstream g("graf_complet.out"); int a[100][100]; int main() { int n, m; f >> n; for(int k = 1; k <= n; k++) { f >> m; int ok = 1, x; for(int i = 1; i <= m; i++) for(int j = 1; j <= m; j++) { f >> a[i][j]; } for(int i = 1; i <= m && ok; i++) for(int j = 1; j <= m && ok; j++) { if(a[i][j] == 0 && i != j) ok = 0; else if(a[i][j] != a[j][i]) ok = 0; } if(ok == 1) g << "DA" << '\n'; else g<< "NU" << '\n'; } return 0; }