Cod sursa(job #3237703)

Utilizator tsg38Tsg Tsg tsg38 Data 11 iulie 2024 22:41:03
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

ifstream fin( "darb.in" );
ofstream fout( "darb.out" );

const int DIM = 1e5 + 1;

vector<int> T[DIM];
int dist[DIM];

void dfs( int u, int p = 0 ) {
  dist[u] = dist[p] + 1;
  for ( auto v : T[u] ) {
	if ( v != p ) {
	  dfs(v, u);
	}
  }
}

int main() {
  ios_base::sync_with_stdio(0);
  fin.tie(0);
  int n, u, v;

  fin >> n;
  for ( int i = 1; i < n; ++i ) {
	fin >> u >> v;
    T[u].push_back(v);
    T[v].push_back(u);
  }
  dfs(1); 
  for ( int i = 1; i <= n; ++i ) {
	u = (dist[u] < dist[i] ? i : u);
  }
  dfs(u);
  int res = 0;
  for ( int i = 1; i <= n; ++i ) {
	res = max(res, dist[i]);
  }
  fout << res;
  fin.close();
  fout.close();
  return 0;
}