Pagini recente » Cod sursa (job #2042286) | Cod sursa (job #2603075) | Cod sursa (job #2439182) | Cod sursa (job #2720142) | Cod sursa (job #2383726)
#include <fstream>
#include <vector>
using namespace std;
vector<int>graf[100002];
int dist[100002],viz[100002],max1,max2;
void dfs(int nod)
{
viz[nod]=1;
for(int i=0;i<graf[nod].size();i++)
{
if(!viz[graf[nod][i]])
{
dist[graf[nod][i]]=dist[nod]+1;
if(dist[graf[nod][i]]>max1)
{
max2=max1;
max1=dist[graf[nod][i]];
}
else
{
if(dist[graf[nod][i]]>max2)
max2=dist[graf[nod][i]];
}
dfs(graf[nod][i]);
}
}
}
int main()
{
int n,a,b;
ifstream in("darb.in");
ofstream out("darb.out");
in>>n;
for(int i=1;i<=n;i++)
{
in>>a>>b;
graf[a].push_back(b);
}
dfs(1);
out<<max1+max2+1;
return 0;
}