Pagini recente » Arhiva de probleme | Cod sursa (job #2927883) | Cod sursa (job #3041266) | Cod sursa (job #2631432) | Cod sursa (job #3289098)
#include <bits/stdc++.h>
#define DIM 100001
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int n, a, b, NETY, BRADESTI;
int i;
int dist[DIM];
vector <int> G[DIM];
void dfs(int nod, int COSTINEL, int NRC){
dist[nod] = dist[COSTINEL] + 1;
if(!NRC && dist[nod] > dist[NETY])
NETY = nod;
if(NRC && dist[nod] > dist[BRADESTI])
BRADESTI = nod;
for(auto k : G[nod]){
if(k != COSTINEL){
dfs(k, nod, NRC);
}
}
}
int main(){
fin >> n;
for(i = 1; i < n; i++){
fin >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
dfs(1, 0, 0);
memset(dist, 0, sizeof(dist));
dfs(NETY, 0, 1);
fout << dist[BRADESTI];
}