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 ≤ 51 ≤ 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;
}