Cod sursa(job #2541259)

Utilizator razvan123vRazvan Vranceanu razvan123v Data 8 februarie 2020 11:48:32
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
//
//  main.cpp
//  darb - infoarena
//
//  Created by Razvan Vranceanu on 08/02/2020.
//  Copyright © 2020 Razvan Vranceanu. All rights reserved.
//

#include <fstream>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");

//declarare
#define N 100001
int n, departe, maxi;
bool viz[N];
struct nod{
    int x;
    nod *leg;
} *L[N];

void adauga(nod *&pp, int val)
{
    nod *p = new nod;
    p->x = val;
    p->leg = pp;
    pp = p;
}

void citire()
{
    f >> n;
    int x, y;
    for(int i = 1; i < n; i ++)
    {
        f >> x >> y;
        adauga(L[x], y);
        adauga(L[y], x);
    }
}
void DF(int i, int cost)
{
    viz[i] = true;
    if(cost > maxi)
    {
        maxi = cost;
        departe = i;
    }
    for(nod *p = L[i]; p; p = p->leg)
        if(!viz[p->x])
            DF(p->x, cost + 1);
}
int main() {
    citire();
    
    DF(1, 1);
    for(int i = 1; i <= n-1; i ++)
        viz[i]=false;
    DF(departe, 1);
    
    g << maxi;
    return 0;
}