Pagini recente » Cod sursa (job #359390) | Cod sursa (job #1503072) | Cod sursa (job #2068806) | Cod sursa (job #1702199) | Cod sursa (job #1382483)
#include <fstream>
#include <vector>
#define nmax 100005
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int n,viz[nmax],niv[nmax],frunza;
int x,y,sol;
vector <int> v[nmax];
void dfs(int nod,int ni)
{
vector <int> ::iterator it;
viz[nod]=1;
niv[nod]=ni;
for (it=v[nod].begin();it!=v[nod].end();it++) {
x=*it;
if (viz[x]==0) {
dfs(x,ni+1);
}
}
}
int main()
{
int i,j;
f>>n;
for (i=2;i<=n;i++) {
f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1,0);
for (i=1;i<=n;i++) {
viz[i]=0;
if (niv[i]>niv[frunza])
frunza=i;
niv[i]=0;
}
dfs(frunza,1);
for (i=1;i<=n;i++) {
sol=max(sol,niv[i]);
}
g<<sol;
return 0;
}