Cod sursa(job #2164462)

Utilizator Alex221Dumitru Alexandru Alex221 Data 13 martie 2018 00:02:00
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int> a[100001];
bool verif[100001];
int n,i,x,y,d[100001],maxi,pmax;
void dfs(int x)
{ verif[x]=1;
  for(int j=0;j<a[x].size();j++)
    if(verif[a[x][j]]==0)
    { d[a[x][j]]=d[x]+1;
      dfs(a[x][j]);
    }
}
int main()
{ f>>n;
  for(i=1;i<=n;i++)
  { f>>x>>y;
    a[x].push_back(y);
    a[y].push_back(x);
  }
  d[1]=1;
  dfs(1);
  /*for(i=1;i<=n;i++)
    g<<d[i]<<" ";
    g<<endl;*/
  for(i=1;i<=n;i++)
 {
    if(maxi<d[i])
    { maxi=d[i];
     pmax=i;
    }
  d[i]=0;
  verif[i]=0;
 }
 //g<<pmax<<" ";
  d[pmax]=1;
  dfs(pmax);
  maxi=0;
  /*for(i=1;i<=n;i++)
    g<<d[i]<<" ";*/
   for(i=1;i<=n;i++)
    if(maxi<d[i])
        maxi=d[i];
   g<<maxi;
    return 0;
}