Pagini recente » Cod sursa (job #812012) | Cod sursa (job #2859771) | Cod sursa (job #695698) | Cod sursa (job #602039) | Cod sursa (job #2713839)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
const int NMAX = 100001;
int n, last;
vector<int>G[NMAX];
int dist[NMAX];
void citire()
{
f >> n;
int x, y;
while(f >> x >> y)
{
G[x].push_back(y);
G[y].push_back(x);
}
}
void BFS(int nod)
{
dist[nod]=1;
bool viz[NMAX] = {0};
int Q[NMAX];
int p, u;
p = u = 1;
viz[nod] = 1;
Q[p] = nod;
while(p <= u)
{
for(auto &x : G[Q[p]])
if(viz[x] == 0)
{
Q[++u] = x;
viz[x] = 1;
dist[x]=dist[Q[p]]+1;
}
p++;
}
last = Q[u];
}
int main()
{
citire();
BFS(1);
BFS(last);
g<<dist[last];
return 0;
}