Pagini recente » Cod sursa (job #2424769) | Cod sursa (job #1297244) | Cod sursa (job #1799089) | Cod sursa (job #1132214) | Cod sursa (job #1428543)
#include <fstream>
#define dim 100001
#include <vector>
#include <queue>
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];
queue <int> q;
void bfs(int inceput)
{
viz[inceput]=op;
dist[inceput]=1;
q.push(inceput);
while(!q.empty())
{
node=q.front();
for(i=0;i<G[node].size();i++)
{
nod=G[node][i];
if(viz[nod]==op1)
{
viz[nod]=op;
dist[nod]=dist[node]+1;
if(dist[nod]>Max)
Max=dist[nod];
q.push(nod);
}
}
last=node;
q.pop();
}
}
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;
bfs(a);
op=0;
op1=1;
bfs(last);
fout<<Max;
return 0;
}