#include<iostream.h>
#include<fstream.h>
int i,n,j,a[10][10],k=0,l,h[10],p=0,p1=0,r=0,nod;
ifstream f;
void afisare(int a[10][10], int n)
{for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
int main()
{f.open("date");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
f.close();
afisare(a,n);
cout<<"nodul ";
cin>>l;
for(j=1;j<=n;j++)
{
if(a[l][j]==1)
k++;
}
cout<<k<<endl;
for(i=1;i<=n;i++)
{h[i]=0;
for(j=1;j<=n;j++)
{
if(a[i][j]==1)
h[i]++;
}}
for(i=1;i<=n;i++)
cout<<"gradul pentru nodul "<<i<<" este "<<h[i]<<endl;
for(i=1;i<=n;i++)
if(h[i]==0)
{p++;
cout<<"nodul "<<i<<" este izolat"<<endl;
}
if(p>0)
cout<<"sunt "<<p<<" noduri izolate"<<endl;
else
cout<<"nu avem mnoduri izolate;"<<endl;
for(i=1;i<=n;i++)
if(h[i]==1)
{p1++;
}
if(p1>0)
cout<<"sunt "<<p1<<" noduri terminale"<<endl;
else
cout<<"nu sunt noduri terminale"<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{if(a[i][j]==1)
r++;}
cout<<"sunt "<<r/2<<" muchii"<<endl;
cout<<"muchiile sunt: "<<endl;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{if(a[i][j]==1)
cout<<"muchia "<<i<<" si "<<j<<endl;}
cout<<"vecinii nodului:"<<endl;;
cin>>nod;
cout<<"sunt: ";
for(i=1;i<=n;i++)
if(a[nod][i]==1)
cout<<i<<" ";
int max=h[1];
for(i=2;i<=n;i++)
if(max<h[i])
max=h[i];
int o=0;
for(i=1;i<=n;i++)
{if(h[i]==max)
o++;}
cout<<endl<<"numarul de noduri cu gradul cel mai mare este "<<o<<" avand gradul "<<max;
int t=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==0 || a[i][j]==1)
if(a[i][j]==1 && a[j][i]==1)
t++;
if(t==2*n)
cout<<endl<<"este matricea unu graf neorientat";
else
cout<<endl<<"nu este matricea unu graf neorientat";
return 0;
}