Pagini recente » Cod sursa (job #1396416) | Cod sursa (job #605665) | Cod sursa (job #783993) | Cod sursa (job #1971281) | Cod sursa (job #1110077)
#include<fstream>
#include<queue>
#include<vector>
#include<cstring>
using namespace std;
int n,niv[100001],ultim,diam;
vector<int> v[100001];
queue<int> q;
ifstream fin("darb.in");
ofstream fout("darb.out");
void citire()
{
int x,y;
fin>>n;
for(int i=1;i<n;i++)
{
fin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
}
void dfs(int nod)
{
memset(niv,0,sizeof(niv));
q.push(nod);
niv[nod]=1;
while(!q.empty())
{
nod=q.front();
q.pop();
for(int i=0;i<v[nod].size();i++)
{
if(niv[v[nod][i]]==0)
{
diam=niv[v[nod][i]]=niv[nod]+1;
q.push(v[nod][i]);
ultim=v[nod][i];
}
}
}
}
int main()
{
citire();
dfs(1);
dfs(ultim);
fout<<diam;
return 0;
}