Cod sursa(job #3240014)

Utilizator maryyMaria Ciutea maryy Data 12 august 2024 01:49:47
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int nmax=1e5;
vector <int> graph[nmax+1], dist;
bitset <nmax> vis;
int n;
int ans, last;
void dfs(int nod)
{
    for(int it:graph[nod])
    {
        if(dist[it]==0)
        {
            dist[it]=dist[nod]+1;
            if(dist[it]>ans)
            {
                ans=dist[it];
                last=it;
            }
            dfs(it);
        }
    }
}
int main()
{
    int x, y;
    in>>n;
    for(int i=1; i<=n; i++)
    {
        in>>x>>y;
        graph[x].push_back(y);
        graph[y].push_back(x);
    }
    dist.assign(n, 0);
    dist[1]=1;
    dfs(1);
    //out<<ans<<'\n';
    ans=0;
    fill(dist.begin(), dist.end(), 0);
    dist[last]=1;
    dfs(last);
    out<<ans;
}
//distanta maxima de la 1 la orice altcv+dist max de la acel ceva la orice altceva