Cod sursa(job #2533344)

Utilizator serafimalex2001Serafim Alex serafimalex2001 Data 28 ianuarie 2020 22:05:37
Problema Diametrul unui arbore Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;

ifstream fin("darb.in");
ofstream fout("darb.out");

const int NMAX = 100009;

vector<int> Ad[NMAX];

int viz[NMAX];

int n;
int last;

void Read()
{
    int i,j,x,y;
    fin>>n;
    for(i=1; i<n; ++i)
    {
        fin>>x>>y;
        Ad[x].push_back(y);
        Ad[y].push_back(x);
    }
}

void DFS(int nod, int parent)
{
    int w,i;
    viz[nod] = viz[parent]+1;
    last = nod;
    for(i = 0; i<Ad[nod].size(); ++i)
    {
        w = Ad[nod][i];
        if(!viz[w])
            DFS(w,nod);
    }
}

void Do()
{
    int i,j;
    int depth;
    DFS(1 , 0);
    depth = viz[last];
    memset(viz, 0 ,sizeof(viz));
    DFS(last, 0);
    depth = viz[last];
    fout<<depth+1;
}

int main()
{
    Read();
    Do();
    return 0;
}