Pagini recente » Cod sursa (job #2205793) | Cod sursa (job #37834) | Cod sursa (job #2894284) | Cod sursa (job #210710) | Cod sursa (job #1247958)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
int main(){
int n, i, x, y;
in >> n;
vector<bool> viz(n + 1);
vector<vector<int>> noduri(n + 1);
for (i = 0; i < n; ++i){
in >> x >> y;
noduri[x].push_back(y);
noduri[y].push_back(x);
}
queue<int> coada;
coada.push(1);
int q;
while (!coada.empty()){
q = coada.front();
coada.pop();
viz[q] = true;
for (auto next : noduri[q]){
if (!viz[next])
coada.push(next);
}
}
for (i = 1; i <= n; ++i){
viz[i] = false;
}
queue<pair<int, int>> coada2;
coada2.push(make_pair(q, 1));
pair<int, int> q2;
while (!coada2.empty()){
q2 = coada2.front();
coada2.pop();
viz[q2.first] = true;
for (auto next : noduri[q2.first]){
if (!viz[next])
coada2.push(make_pair(next, q2.second + 1));
}
}
out << q2.second;
return 0;
}