Pagini recente » Cod sursa (job #711377) | Cod sursa (job #1922451) | Cod sursa (job #1372848) | Cod sursa (job #726014) | Cod sursa (job #1129372)
#include <fstream>
#include <queue>
#include <vector>
#include <cstring>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int nr[100005],x,viz[100005],n,i,k,m;
queue<int> q;
vector<int> a[100005];
int main()
{
f>>n;
for(i=1;i<=n-1;i++)
{
f>>k>>m;
a[k].push_back(m);
a[m].push_back(k);
}
q.push(1);
viz[1]=1;
while(!q.empty())
{
x=q.front();
q.pop();
for(vector<int>::iterator it=a[x].begin();it!=a[x].end();it++)
{
if(!viz[*it])
{
viz[*it]++;
q.push(*it);
}
}
}
memset(viz,0,sizeof(viz));
q.push(x);
viz[x]=1;
nr[x]++;
while(!q.empty())
{
x=q.front();
q.pop();
for(vector<int>::iterator it=a[x].begin();it!=a[x].end();it++)
{
if(!viz[*it])
{
viz[*it]++;
q.push(*it);
nr[*it]=nr[x]+1;
}
}
}
g<<nr[x]<<'\n';
return 0;
}