Cod sursa(job #2240631)
| Utilizator | Data | 13 septembrie 2018 20:06:18 | |
|---|---|---|---|
| Problema | Diametrul unui arbore | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int>G[100001];
int n,viz[100001],mx,pct;
void DFS1(int node,int val)
{
viz[node]=val;
if(val>mx)
{
mx=val;
pct=node;
}
for(vector<int>::iterator it=G[node].begin(); it < G[node].end();++it)
{
if(viz[*it]==0)
{
DFS1(*it,val+1);
}
}
}
int main()
{
f>>n;
for(int a,b,i=1;i<=n;++i)
{
f>>a>>b;
G[a].push_back(b);
G[b].push_back(a);
}
DFS1(1,1);
mx=0;
memset(viz,0,sizeof(viz));
DFS1(pct,1);
g<<mx;
}
