Pagini recente » Cod sursa (job #124163) | Cod sursa (job #2657507) | Cod sursa (job #2321450) | Cod sursa (job #464168) | Cod sursa (job #2383730)
#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);
graf[b].push_back(a);
}
dfs(1);
out<<max1+max2+1;
return 0;
}