Pagini recente » Cod sursa (job #2074356) | Cod sursa (job #1467628) | Cod sursa (job #715670) | Cod sursa (job #1532916) | Cod sursa (job #1809792)
#include <fstream>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
bool viz[100001];
typedef struct celula
{
int nod;
celula *next;
}*lista;
lista graf[100001],p,a;
int n,sol,i,x,y;
int dfs(int nodc)
{
lista i;
viz[nodc]=1;
for(i=graf[nodc];i!=NULL;i=i->next)
{
if(viz[i->nod]==0)
{
viz[i->nod]=1;
dfs(i->nod);
}
}
return i->nod;
}
int main()
{
cin>>n;
for(i=1; i<=n; ++i)
{
cin>>x>>y;
a= new celula;
a->next=graf[x];
a->nod=y;
graf[x]=a;
a= new celula;
a->next=graf[y];
a->nod=x;
graf[y]=a;
}
x=dfs(1);
x=dfs(x);
for(i=1;i<=100001;++i) if(viz[i]==1) sol++;
cout<<sol;
return 0;
}