Pagini recente » Cod sursa (job #902385) | Cod sursa (job #1721426) | Cod sursa (job #3188454) | Cod sursa (job #917497) | Cod sursa (job #2262560)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
const int N=100000+5;
int n;
vector<int>g[N];
int d[N];
inline void dfs(int nod)
{
for(auto nou:g[nod])
{
if(d[nou]==-1)
{
d[nou]=d[nod]+1;
dfs(nou);
}
}
}
int main()
{
fin>>n;
for(int i=1;i<n;i++)
{
int a,b;
fin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
for(int i=1;i<=n;i++)
{
d[i]=-1;
}
int a=0;
for(int i=1;i<=n;i++)
{
if(g[i].size()==1)
{
a=i;
break;
}
}
d[a]=0;
dfs(a);
int mx=0,b=0;
for(int i=1;i<=n;i++)
{
if(d[i]>mx)
{
mx=d[i];
b=i;
}
}
for(int i=1;i<=n;i++)
{
d[i]=-1;
}
d[b]=0;
dfs(b);
mx=0;
for(int i=1;i<=n;i++)
{
mx=max(mx,d[i]);
}
mx++;
fout<<mx<<"\n";
return 0;
}