Pagini recente » Cod sursa (job #2952464) | Cod sursa (job #746137) | Cod sursa (job #2964998) | Cod sursa (job #697758) | Cod sursa (job #2192121)
#include <bits/stdc++.h>
using namespace std;
int n,ul,diam,a,b,grad[100010];
bool viz[100010];
vector <int> v[100010];
void bfs(int x)
{
memset(viz,0,n+2);
memset(grad,0,n+2);
queue <int> q;
q.push(x);
viz[x]=1;
grad[x]=1;
while(!q.empty())
{
int curr=q.front();
q.pop();
for(int i=0;i<v[curr].size();i++)
{
if(!viz[v[curr][i]])
{
viz[v[curr][i]]=1;
grad[v[curr][i]]=grad[curr]+1;
diam=grad[v[curr][i]];
ul=v[curr][i];
q.push(v[curr][i]);
}
}
}
}
int main()
{
ifstream cin("darb.in");
ofstream cout("darb.out");
cin>>n;
for(int i=0;i<n-1;i++)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
bfs(1);
bfs(ul);
cout<<diam;
return 0;
}