Cerința
Dându-se o matrice de numere întregi cu n
linii și n
coloane, să se verifice dacă este sau nu matrice de adiacență asociată unui graf neorientat.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi se citesc de pe n
linii câte n
numere naturale, separate prin spații, reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran valoarea 1
dacă matricea este de adiacență, sau 0
dacă nu este matrice de adiacență.
Restricții și precizări
3 ≤ n ≤ 100
- Un graf neorientat nu admite nici bucle (deci nu există muchie de la un nod la el însuși) și nici muchii multiple între aceleași două noduri.
Exemplul 1:
Intrare
4 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0
Ieșire
1
Exemplul 2:
Intrare
4 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0
Ieșire
0
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema matad:
#include <bits/stdc++.h>
#define nmax 101
using namespace std;
int a[nmax][nmax], n;
void Citire()
{
int i, j;
cin >> n;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
cin >> a[i][j];
}
int VerifMatAd()
{
int i, j;
/// verifica daca pe diagonala principala este doar 0
for (i = 1; i <= n; i++)
if (a[i][i] != 0) return 0;
/// verifica simetria si daca a[i][j]=0..1
for (i = 1; i < n; i++)
for (j = i + 1; j <= n; j++)
{
if (a[i][j] < 0 || a[i][j] > 1) return 0;
if (a[i][j] != a[j][i]) return 0;
}
return 1;
}
int main()
{
Citire();
cout << VerifMatAd() << "\n";
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2707 matad
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2707 matad de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!