Cod sursa(job #3346692)
| Utilizator | Data | 15 martie 2026 08:57:51 | |
|---|---|---|---|
| Problema | Diametrul unui arbore | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int NMAX=1e5+5;
int n, maxd, maxu;
vector<int> adj[NMAX];
void DFS(int u, int pu, int d)
{
if(d>maxd)
{
maxd=d;
maxu=u;
}
for(auto v:adj[u])
{
if(v==pu)
continue;
DFS(v, u, d+1);
}
}
int main()
{
in>>n;
for(int i=1;i<n;i++)
{
int a, b; in>>a>>b;
adj[a].push_back(b);
adj[b].push_back(a);
}
DFS(1, 0, 1);
maxd=0;
DFS(maxu, 0, 1);
out<<maxd;
return 0;
}