Cod sursa(job #2338572)

Utilizator alexoloieriAlexandru Oloieri alexoloieri Data 7 februarie 2019 17:00:20
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>
#include <vector>
#define pb push_back
#define lmax 100005
using namespace std;
FILE *fin=fopen("darb.in","r");
FILE *fout=fopen("darb.out","w");
int n;
int x, y;
vector<int>g[lmax];
int f1, n1;
int ans, n2;
void dfs(int k, int nr, int last, int &maxx, int &nod)
{
    if (nr>maxx)
    {
        maxx = nr;
        nod = k;
    }
    for (int i=0;i<g[k].size();++i)
    {
        if (g[k][i]!=last)
        {
            dfs(g[k][i], nr+1, k, maxx, nod);
        }
    }
}
int main()
{
    fscanf(fin,"%d",&n);
    for (int i=1;i<=n;++i)
    {
        fscanf(fin,"%d %d",&x,&y);
        g[x].pb(y);
        g[y].pb(x);
    }
    dfs(1,1,-1,f1,n1);
    dfs(n1,1,-1,ans,n2);
    fprintf(fout,"%d\n",ans);
    return 0;
}