Pagini recente » Cod sursa (job #1696938) | Cod sursa (job #162198) | Cod sursa (job #2880909) | Cod sursa (job #2277157) | Cod sursa (job #1502309)
#include <fstream>
#include <vector>
#include <bitset>
#include <cstring>
#define NMAX 100005
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int d[NMAX];
bitset <NMAX> viz;
vector <int> G[NMAX];
int maxNod, dmax;
void DF(int nod)
{
viz[nod] = 1;
for (vector<int>::iterator it = G[nod].begin(); it != G[nod].end(); ++it)
if (!viz[*it])
{
d[*it] = d[nod] + 1;
if (d[*it] > dmax)
{
dmax = d[*it];
maxNod = *it;
}
DF(*it);
}
}
int main()
{
int x, y;
int n;
fin >> n;
for (int i = 1; i < n; ++i)
{
fin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
DF(1);
viz.reset();
memset(d, 0, sizeof(d));
DF(maxNod);
fout << dmax + 1 << '\n';
return 0;
}