Pagini recente » Statistici Gheorghiu Vlad (VladGheorghiu) | Istoria paginii runda/mere/clasament | Cod sursa (job #763345) | Cod sursa (job #2758546) | Cod sursa (job #2523942)
/*
ID: Sho10
LANG: C++
TASK:
*/
#include <bits/stdc++.h> //JuniorMonster a.k.a Sho10
#define ll long long int
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define sz size
#define f first
#define s second
#define pb push_back
#define er erase
#define in insert
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll n,dist[100005],root=1,x,y;
vector<ll>v[100005];
bitset<100005>viz;
queue<ll>q;
int32_t main(){
ifstream cin("darb.in");
ofstream cout("darb.out");
cin>>n;
for(ll i=0;i<n;i++)
{
cin>>x>>y;
v[x].pb(y);
v[y].pb(x);
}
root=1;
viz[root]=1;
dist[root]=1;
q.push(root);
while(!q.empty()){
x=q.front();
viz[x]=1;
for(ll i=0;i<v[x].size();i++)
if(viz[v[x][i]]==0){
q.push(v[x][i]);
dist[v[x][i]]=dist[x]+1;
}
q.pop();
}
for(ll i=1;i<=n;i++)
if(dist[i]>dist[root]){
root=i;
}
for(ll i=1;i<=n;i++)
viz[i]=0;
q.push(root);
dist[root]=1;
viz[root]=1;
while(!q.empty()){
x=q.front();
viz[x]=1;
for(ll i=0;i<v[x].size();i++)
if(viz[v[x][i]]==0){
q.push(v[x][i]);
dist[v[x][i]]=dist[x]+1;
}
q.pop();
}
cout<<dist[x]<<endl;
}