Cod sursa(job #2321378)

Utilizator davidisimo040Asandoaiei David davidisimo040 Data 15 ianuarie 2019 23:52:20
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.42 kb
/*#include <bits/stdc++.h>
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
vector <int> v[100001];
bool viz[1001];
int k,n,x,y,lmax=0,imax;
void dfs(int n,int l)
{
    if(l>lmax) {lmax=l;
    imax=n;}
    for(auto it:v[n])
        if(!viz[it])
    {
        viz[it]=1;
        dfs(it,l+1);
    }

}
int main()
{   fin>>n;
viz[1]=1;
for(int i=1;i<n;i++)
   {



    fin>>x>>y;
    v[x].push_back(y);
    v[y].push_back(x);
}
    dfs(1,1);
    for(int h=1;h<n;h++) viz[h]=0;
    viz[imax]=1;
    dfs(imax,1);
    fout<<lmax;
    return 0;
}
*/

#include <bits/stdc++.h>



using namespace std;

ifstream fin("darb.in");

ofstream fout("darb.out");

int n, m, i,lmax, departe,x,y;

vector<int> v[1000001];

int viz[1000001];

void dfs(int nod,int lungime)

{



    if(lungime>lmax)

    {

        lmax=lungime;

        departe=nod;

    }

    for(auto it : v[nod])

        if(!viz[it])

        {



            viz[it]=1;

            dfs(it, lungime+1);

        }



}

int main()

{

    fin>>n;

    for(i=1; i<=n-1; i++)

    {

        fin>>x>>y;

        v[x].push_back(y);

        v[y].push_back(x);

    }

    i=1;

    lmax=0;

    viz[1]=1;

    dfs(1,1);

    for(i=1;i<=n-1;i++)

        viz[i]=0;

    viz[departe]=1;

    dfs(departe, 1);

    fout<<lmax;

    return 0;

}