Pagini recente » Istoria paginii runda/test193120947281/clasament | Cod sursa (job #2732100) | Cod sursa (job #1487116) | Cod sursa (job #1239998) | Cod sursa (job #2542794)
#include <iostream>
#include <fstream>
#include <vector>
#define N 100001
#define INF 2000000
#include <deque>
using namespace std;
vector <int> graph[N];
deque <int> q;
int dist[N],last;
void bf(int nod)
{
int ve;
dist[nod]=1;
q.push_back(nod);
while(!q.empty())
{
nod=q.front();
q.pop_front();
for(int i=0;i<graph[nod].size();++i)
{
ve=graph[nod][i];
if(dist[ve]>dist[nod]+1)
{
dist[ve]=dist[nod]+1;
last=ve;
q.push_back(ve);
}
}
}
}
int main()
{
ifstream f("darb.in");
ofstream g("darb.out");
int n,x,y;
f>>n;
for(int i=1;i<=n;++i)
{
f>>x>>y;
graph[x].push_back(y);
graph[y].push_back(x);
}
for(int i=1;i<=n;++i) dist[i]=INF;
bf(1);
for(int i=1;i<=n;++i) dist[i]=INF;
bf(last);
g<<dist[last];
return 0;
}