Cod sursa(job #2383726)

Utilizator albucristianAlbu Cristian-Gabriel albucristian Data 19 martie 2019 19:15:31
Problema Diametrul unui arbore Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>
using namespace std;
vector<int>graf[100002];
int dist[100002],viz[100002],max1,max2;
void dfs(int nod)
{
    viz[nod]=1;
    for(int i=0;i<graf[nod].size();i++)
    {
        if(!viz[graf[nod][i]])
        {
            dist[graf[nod][i]]=dist[nod]+1;
            if(dist[graf[nod][i]]>max1)
            {
                max2=max1;
                max1=dist[graf[nod][i]];
            }
            else
            {
                if(dist[graf[nod][i]]>max2)
                    max2=dist[graf[nod][i]];
            }
            dfs(graf[nod][i]);
        }
    }
}
int main()
{
    int n,a,b;
    ifstream in("darb.in");
    ofstream out("darb.out");
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>a>>b;
        graf[a].push_back(b);
    }
    dfs(1);
    out<<max1+max2+1;
    return 0;
}