Cod sursa(job #1428546)

Utilizator GinguIonutGinguIonut GinguIonut Data 4 mai 2015 18:51:30
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#define dim 100001
#include <vector>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int viz[dim],dist[dim],last,a,b,n,inceput,i,node,nod,Max,op,op1;
vector <int> G[dim];
void dfs(int nod)
{
    for(int i=0;i<G[nod].size();i++)
    {
        node=G[nod][i];
        if(viz[node]==op1)
        {
            viz[node]=op;
            dist[node]=dist[nod]+1;
            if(dist[node]>Max)
            {
                Max=dist[node];
                last=node;
            }
            dfs(node);
        }
    }
}
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);
    }
    op=1;
    op1=0;
    viz[a]=dist[a]=1;
    dfs(a);
    viz[last]=dist[last]=1;
    op=0;
    op1=1;
    dfs(last);
    fout<<Max;
    return 0;
}