Cod sursa(job #3346658)
| Utilizator | Data | 14 martie 2026 19:57:51 | |
|---|---|---|---|
| Problema | Diametrul unui arbore | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int NMAX=1e5+5;
int n;
vector<int> adj[NMAX];
pair<int, int> DFS(int u, int pu)
{
pair<int, int> maxv={0, u};
for(auto v:adj[u])
{
if(v==pu)
continue;
maxv=max(maxv, DFS(v, u));
}
maxv.first++;
return maxv;
}
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);
}
out<<DFS(DFS(1, 0).second, 0).first;
return 0;
}