Cod sursa(job #1886635)

Utilizator theodor1289Theodor Amariucai theodor1289 Data 21 februarie 2017 00:16:22
Problema Diametrul unui arbore Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define INF 999999999
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector<int> g[100010];
int ctr, a, b, sursa, n, m, coada[100010], p, u, dist[100010], viz[100010], gasit, distmax;

void dfs(int nod)
{
    viz[nod]=1;
    for(int i=0; i<g[nod].size();i++)
        if(!viz[g[nod][i]])
        {
            dist[g[nod][i]]=dist[nod]+1;
            if(dist[g[nod][i]]>distmax)
                distmax=dist[g[nod][i]], gasit=g[nod][i];
            dfs(g[nod][i]);
        }
}

int main()
{
    fin>>n>>m;
    while(fin>>a>>b)
    {
        g[a].push_back(b);
        g[b].push_back(a);
    }

    viz[1]=1;
    dfs(1);

    for(int i=1;i<=n;i++)
        viz[i]=0, dist[i]=0;

    viz[gasit]=1;
    dfs(gasit);

    fout<<distmax+1;
    return 0;
}