Cod sursa(job #2151689)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 4 martie 2018 19:17:10
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <cstdio>
#include <vector>
#include <iostream>
#include <bitset>

using namespace std;
int last,lung,lungmax;
vector <int> v[100001];
bitset <100001> f;
void dfs (int nod){
    int i,vecin;
    f[nod]=1;
    for (i=0;i<v[nod].size();i++){
        vecin=v[nod][i];
        if (!f[vecin]){
            lung++;
            if (lung>lungmax){
                lungmax=lung;
                last=vecin;
            }
            dfs (vecin);
            lung--;
        }
    }
}
int main()
{
    FILE *fin=fopen ("darb.in","r");
    FILE *fout=fopen ("darb.out","w");
    int n,i,x,y;
    fscanf (fin,"%d",&n);
    for (i=1;i<n;i++){
        fscanf (fin,"%d%d",&x,&y);
        v[x].push_back(y);
        v[y].push_back(x);
    }
    last=1;
    lung=1;
    dfs(1);
    lung=1;
    lungmax=1;
    f.reset();
    dfs (last);
    fprintf (fout,"%d",lungmax);
    return 0;
}