Sunteți pe pagina 1din 2

#include<iostream>

using namespace std;


int a[100][100],n,s,m,i,j;
void citire()
{
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
do{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}

while((a[i][j]!=0)&&(a[i][j]!=1));
}
}
int suma()
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
s=s+a[i][j];
return s;
}
int muchii()
{
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
m=m+a[i][j];
return m;
}
void calculeaza()
{
if(s==2*m)
cout<<"Da";
else
cout<<"Nu";
}
int main()
{
cout<<"n=";cin>>n;
citire();
muchii();
suma();
calculeaza();
return 0;}
Pentru a verifica dac gradele g(1),g(2),,g(n) pot reprezenta gradele
vrfurilor unui graf neorientat, verificm daca suma acestor grade este egala cu
dublul numrului de muchii.
Funcia citire() citete elementele matricei dac i numai dac acestea
sunt valori de 0 sau 1.
Funcia muchii() calculeaz numrul de muchii a grafului, adic toate
elementele de 1 de deasupra diagonalei principale. Acestea fiind valori de 1,
vom calcula suma dintre ele.
Funcia suma() calculeaz suma tuturor elementelor din matrice,ele
fiind valori de 0 sau 1, nseamn ca va afla numrul tuturor valorilor de 1.
Funcia calculeaz() verific daca suma tuturor elementelor din matrice
este egal cu dublul sumei elementelor de pe diagonala principal. n caz
afirmativ, nseamn c graful este graf neorientat, iar in caz contrar, graful nu
este graf neorientat.
n funcia main() citim mai nti numrul de vrfuri ale grafului. Apoi
apelm fiecare funcie.