Cod sursa(job #2446119)

Utilizator vladadAndries Vlad Andrei vladad Data 7 august 2019 11:02:47
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int n, x, y;
vector<int> v[100001];
bool viz[100001];
int dis[100001], maxim, a;
void dfs(int nod, int dist);
int main()
{
    f>>n;
    for(int i=1; i<=n-1; i++)
    {
        f>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1, 1);
    for(int i=2; i<=n; i++)
        if(maxim<dis[i])
            maxim=dis[i], a=i;
    memset(viz, 0, sizeof(viz));
    dfs(a, 1);
    for(int i=1; i<=n; i++)
        if(maxim<dis[i])
            maxim=dis[i];
    g<<maxim;
    return 0;
}
void dfs(int nod, int dist)
{
    dis[nod]=dist;
    viz[nod]=1;
    for(int i=0; i<v[nod].size(); i++)
        if(!viz[v[nod][i]]) dfs(v[nod][i], dist+1);
}