Pagini recente » Cod sursa (job #1374134) | Cod sursa (job #1370864) | Cod sursa (job #2628031) | Cod sursa (job #1210050) | Cod sursa (job #1674090)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
#include <queue>
#define pb push_back
#define mp make_pair
#define MAXN 100001
#define INFILE "darb.in"
#define OUTFILE "darb.out"
using namespace std;
ifstream f(INFILE);
ofstream g(OUTFILE);
vector<int> G[MAXN];
vector<int>::iterator it;
bitset<MAXN>use,use1;
queue<int>q;
int n,a,b,lmax,l;
int bf(int x)
{
q.push(x);
use[x]=1;
while(!q.empty())
{
x=q.front();q.pop();
for(it=G[x].begin();it!=G[x].end();it++)
if(!use[*it])q.push(*it),use[*it]=1;
}
return x;
}
void df(int x)
{
l++;
use1[x]=1;
if(l>lmax)lmax=l;
for(vector<int>::iterator it=G[x].begin();it!=G[x].end();it++)
if(!use1[*it])df(*it);
l--;
}
int main()
{
f>>n;
for(int i=1;i<n;i++)
{
f>>a>>b;
G[a].pb(b);
G[b].pb(a);
}
df(bf(1));
g<<lmax;
f.close();
g.close();
return 0;
}