Cod sursa(job #1343435)

Utilizator andrusca97Rosu Andrei andrusca97 Data 15 februarie 2015 14:45:36
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <bitset>
#define DMAX 100005
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");

vector <int> G[DMAX];
bitset <DMAX> viz;

int maxd, nodd,n;
void READ()
{
    int i,x,y;
    in>>n;
    for(i=1;i<=n;i++)
    {
        in>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
}
void DFS(int nod, int niv)
{
    unsigned i;
    viz[nod]=1;
    for(i=0 ; i<G[nod].size(); i++)
    {
        int vecin=G[nod][i];
        if(viz[vecin]==0)
            DFS(vecin,niv+1);
    }
    if(niv>maxd)
    {
        maxd=niv; nodd=nod;
    }
}
int main()
{
    READ();
    DFS(1,0);
    maxd=0;
    viz.reset();
    DFS(nodd,0);
    out<<maxd+1;
    return 0;
}