Pagini recente » Cod sursa (job #484890) | Cod sursa (job #2492414) | Cod sursa (job #2319096) | Cod sursa (job #3208839) | Cod sursa (job #2487940)
#include <iostream>
#include <fstream>
#include <vector>
#define NMAX 100000
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int> v[NMAX],viz;
int m1=0,m2=0;
void dfs(int k,int nr=1)
{
viz[k]=1;
if(v[k].size()==0)
{if(nr>m1)
m2=m1,m1=nr;
else if(nr>m2)
m2=nr;
return;
}
for(auto x:v[k])
if(!viz[x])
{
viz[x]=1;
dfs(x,nr+1);
}
}
int main()
{
int n;
f>>n;
for(int i=1;i<n;++i)
{
viz.push_back(0);
int x,y;
f>>x>>y;
v[x-1].push_back(y-1);
}
viz.push_back(0);
dfs(0);
g<<m1+m2-1;
return 0;
}