Cod sursa(job #2766500)

Utilizator noonex64U dont need to know noonex64 Data 1 august 2021 22:45:05
Problema Diametrul unui arbore Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <string.h>
#include <vector>
#include <fstream>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<vector<int>> v;
int maxi=0;
int solve(int nod) {
    int n=v[nod].size();
    if(n==0)
        return 0;
    int maxi1=0, maxi2=0;
    for(int i=0;i<n;i++) {
        int c=1+solve(v[nod][i]);
        if(c>maxi1) {
            maxi2=maxi1;
            maxi1=c;
        }
        else if(c<maxi1&&c>maxi2)
            maxi2=c;
    }
    maxi=max(maxi, maxi1+maxi2+1);
    return maxi1+1;
}
int main()
{
    int n, a, b;
    in>>n;
    v.resize(n+1);
    for(int i=0;i<n-1;i++) {
        in>>a>>b;
        v[a].push_back(b);
    }
    int aux=solve(1);
    out<<maxi;
}