Pagini recente » Cod sursa (job #2763146) | Cod sursa (job #3228922) | Cod sursa (job #1977267) | Cod sursa (job #2762614) | Cod sursa (job #1464361)
#include <iostream>
#include <fstream>
using namespace std;
fstream in("darb.in", ios::in);
fstream out("darb.out", ios::out);
#define nmax 100001
struct nod
{
int info;
nod *next;
} *lista[nmax], *p;
int n,i,j,s[nmax],ultim,t[nmax];
void df(int);
int main()
{
in>>n;
while(in>>i>>j)
{
p= new nod;
p->info=j;
p->next=lista[i];
lista[i]=p;
p= new nod;
p->info=i;
p->next=lista[j];
lista[j]=p;
}
i=1;
while(!lista[i])
i++;
df(i);
for(i=1;i<=n;i++)
{
s[i]=0;
t[i]=0;
}
j=0;
df(ultim);
i=t[ultim];
while(i!=0)
{
j++;
i=t[i];
}
out<<j+1;
in.close();
out.close();
return 0;
}
void df(int node)
{
ultim= node;
int k;
nod *q;
s[node]=1;
q=lista[node];
while(q)
{
if(s[q->info]==0)
{
t[q->info]=node;
df(q->info);
}
q=q->next;
}
}