Cod sursa(job #3360307)
| Utilizator | Data | 11 iulie 2026 23:33:24 | |
|---|---|---|---|
| Problema | Diametrul unui arbore | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
#define cin fin
#define cout fout
vector<int> v[100005];
int n,d[100005],maxim,nod,x,y;
void dfs(int x,int tata)
{
if(d[x]>maxim) maxim=d[x],nod=x;
for(int i=0;i<v[x].size();i++)
{
if(v[x][i]!=tata)
{
d[v[x][i]]=d[x]+1;
dfs(v[x][i],x);
}
}
}
int main()
{
cin>>n;
for(int i=1;i<n;i++)
{
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1,0);
maxim=0;
d[nod]=0;
dfs(nod,0);
cout<<maxim+1;
}
