Pagini recente » Cod sursa (job #1081139) | Cod sursa (job #22910) | Cod sursa (job #1753481) | Cod sursa (job #555338) | Cod sursa (job #2542605)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int NMax = 100000;
vector <int> G[NMax+5];
int N, Use[NMax+5], Lvl[NMax+5], maxi, nmax;
void Read() {
in >> N;
for (int i = 0,x,y; i < N-1; i++) {
in >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void DFS(int Node) {
Use[Node] = 1;
for (int i = 0; i < G[Node].size(); i++) {
int Vecin = G[Node][i];
if (!Use[Vecin]) {
Lvl[Vecin] = Lvl[Node] + 1;
if(Lvl[Vecin] > maxi)
maxi = Lvl[Vecin], nmax = Vecin;
DFS(Vecin);
}
}
}
int main() {
Read();
DFS(1);
int cmaxi = maxi;
DFS(nmax);
out << cmaxi + maxi;
}