Pagini recente » Cod sursa (job #2826357) | Cod sursa (job #3247333) | Cod sursa (job #2835371) | Cod sursa (job #1213268) | Cod sursa (job #1547682)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
#define MAX 100010
typedef vector <int> :: iterator iter;
vector <int> G[MAX];
int viz[MAX];
void df(int nod)
{
for(iter it = G[nod].begin() ; it != G[nod].end() ; it++)
{
if(!viz[*it])
{
viz[*it] = viz[nod] + 1;
df(*it);
}
}
}
int main()
{
int n, i, x, y, mx;
fin >> n;
for(i = 1 ; i < n ; i++)
{
fin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
viz[1] = 1;
df(1);
mx = 1;
for(i = 1 ; i <= n ; i++)
if(viz[i] > viz[mx])
mx = i;
memset(viz, 0, sizeof(viz));
viz[mx] = 1;
df(mx);
mx = 1;
for(i = 1 ; i <= n ; i++)
{
if(viz[i] > viz[mx])
mx = i;
}
fout << viz[mx] << "\n";
}