Pagini recente » Cod sursa (job #1950468) | Cod sursa (job #2192272) | Cod sursa (job #2351543) | Cod sursa (job #151981) | Cod sursa (job #1552276)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<int>v[100001];
queue<int>q;
int n,x,y,i,sol,l,a[100001];
void bfs(int root)
{
a[root]=1;
q.push(root);
while(!q.empty())
{
int t=q.front();
l=t;
q.pop();
for(i=0;i<v[t].size();++i)
if(!a[v[t][i]])
{
a[v[t][i]]=1;
q.push(v[t][i]);
}
}
}
void dfs(int r,int father,int dmax)
{
sol=max(sol,dmax);
for(int i=0;i<v[r].size();++i)
if(v[r][i]!=father)
dfs(v[r][i],r,dmax+1);
}
int main(){
in>>n;
sol=1;
for(i=1;i<=n;++i)
{
in>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
bfs(1);
dfs(l,0,1);
out<<sol;
}