Pagini recente » Cod sursa (job #1572121) | Cod sursa (job #711138) | Cod sursa (job #1721633) | Cod sursa (job #267451) | Cod sursa (job #1217309)
#include <cstdio>
#include <vector>
#include <cstring>
#define nmax 100005
#define pb push_back
using namespace std;
vector <int> s[nmax];
int S[nmax],c[nmax],n,x,y,last=1;
int main()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
scanf("%d\n",&n);
for (int i=1;i<n;++i)
{
scanf("%d%d\n",&x,&y);
s[x].pb(y);s[y].pb(x);
}
int g=c[1]=1;
S[1]=1;
for (int f=1;f<=g;++f)
for (int i=0;i<s[c[f]].size();++i)
if (!S[s[c[f]][i]])
S[s[c[f]][i]]=S[c[f]]+1,last=c[++g]=s[c[f]][i];
memset(c,0,sizeof(c));
memset(S,0,sizeof(S));
g=1;c[1]=last;
S[last]=1;
for (int f=1;f<=g;++f)
for (int i=0;i<s[c[f]].size();++i)
if (!S[s[c[f]][i]])
S[s[c[f]][i]]=S[c[f]]+1,last=c[++g]=s[c[f]][i];
printf("%d\n",S[last]);
}