Cod sursa(job #2487758)

Utilizator VladAdrianaVlad Adriana VladAdriana Data 5 noiembrie 2019 18:27:51
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector <int> L[100005];
int n,m,x,y,uz[100005];
struct M{int val,ind;}maxi;
void dfs(int k)
{
    for(int i=0;i<L[k].size();i++)
    {
        if(!uz[L[k][i]])
        {
            uz[L[k][i]]=uz[k]+1;
            if(uz[L[k][i]]>maxi.val)
            {
                maxi.val=uz[L[k][i]];
                maxi.ind=L[k][i];
            }
            dfs(L[k][i]);
        }
    }
}
int main()
{
    int i;
    fin>>n;
    for(i=1;i<n;i++)
    {
        fin>>x>>y;
        L[x].pb(y);
        L[y].pb(x);
    }
    uz[1]=1;
    dfs(1);
    for(i=1;i<=n;i++) uz[i]=0;
    uz[maxi.ind]=1;
    maxi.val=0;
    dfs(maxi.ind);
    fout<<maxi.val;
    return 0;
}