Pagini recente » Cod sursa (job #889623) | Cod sursa (job #1537855) | Cod sursa (job #1020047) | Cod sursa (job #1347018) | Cod sursa (job #1424110)
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
void citire(int a[100][100],int &n)
{int i,x,y;
ifstream in("darb.in");
in>>n;
for (i=1;i<=n;i++)
{in>>x>>y;;
a[x][y]=a[y][x]=1;
}
in.close();
}
void BF(int a[100][100],int v[100],int c[100],int d[100],int &n,int l,int &last)
{int p,u,x,i,k=0;;
v[l]=1;
c[0]=l;
p=0;
u=0;
while (p<=u)
{
x=c[p];
p++;
for (i=1;i<=n;i++)
if ((a[x][i]==1)&&v[i]!=1)
{u++;
c[u]=i;
v[i]=1;
d[i]=d[x]+1;
last=i;
}
}
}
int main()
{int n,i,j,s=0,a[100][100],v[100],c[100],d[100],last;
ofstream out("darb.out");
citire(a,n);
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
s+=a[i][j];
if (2*s==2*(n-1))
{
BF(a,v,c,d,n,1,last);
for (i=1;i<=n;i++)
{v[i]=0;
c[i]=0;
d[i]=0;
}
BF(a,v,c,d,n,last,last);
out<<d[last]+1;
}
else cout<<"Graful dat la intrare nu este arbore"<<endl;
out.close();
return 0;
}