Cod sursa(job #2786154)

Utilizator Botnaru_VictorBotnaru Victor Botnaru_Victor Data 20 octombrie 2021 13:42:48
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
#define nod first
#define h second
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
 
vector<int> adj[100001];
int n;
bool vis[100001];
pair<int,int> dfs(pair<int,int> pt)
{
    vis[pt.nod]=1;
    pair<int,int> mx=pt;
    for(auto e:adj[pt.nod])
    {
        if(!vis[e])
        {
            pair<int,int> newmx=dfs({e,pt.h+1});
            if(newmx.h>mx.h) mx=newmx;
        }
    }
    return mx;
}
int main()
{
    f>>n;
    for(int i=0;i<n-1;i++)
    {
        int a,b; f>>a>>b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    int a=dfs({1,0}).nod;
    for(int i=1;i<=n;i++) vis[i]=0;
    int ans=dfs({a,0}).h;
    g<<ans+1;
    return 0;
}