Pagini recente » Monitorul de evaluare | Cod sursa (job #705864) | Cod sursa (job #1296235) | Istoria paginii utilizator/mihaela_narita | Cod sursa (job #1428546)
#include <fstream>
#define dim 100001
#include <vector>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int viz[dim],dist[dim],last,a,b,n,inceput,i,node,nod,Max,op,op1;
vector <int> G[dim];
void dfs(int nod)
{
for(int i=0;i<G[nod].size();i++)
{
node=G[nod][i];
if(viz[node]==op1)
{
viz[node]=op;
dist[node]=dist[nod]+1;
if(dist[node]>Max)
{
Max=dist[node];
last=node;
}
dfs(node);
}
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a>>b;
G[a].push_back(b);
G[b].push_back(a);
}
op=1;
op1=0;
viz[a]=dist[a]=1;
dfs(a);
viz[last]=dist[last]=1;
op=0;
op1=1;
dfs(last);
fout<<Max;
return 0;
}