Pagini recente » Diferente pentru runda/springfest intre reviziile 5 si 1 | Diferente pentru utilizator/robertkarol intre reviziile 7 si 8 | Diferente pentru blog/putina-recursivitate intre reviziile 8 si 6 | Diferente pentru utilizator/jacktheriper intre reviziile 1 si 2 | Cod sursa (job #2011036)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int n,cost[100005],a,b,start,mx,dm[100005];
vector<int>vecini[100005];
queue<int> q;
void bfs(int x,int v[])
{
q.push(x);
v[x]=1;
while(!q.empty())
{
start=q.front();
mx=start;
q.pop();
for(int i=0;i<vecini[start].size();++i)
{
if(!v[vecini[start][i]])
{
v[vecini[start][i]]=v[start]+1;
q.push(vecini[start][i]);
}
}
}
}
int main()
{
f>>n;
for(int i=1;i<n;++i)
{
f>>a>>b;
vecini[a].push_back(b);
vecini[b].push_back(a);
}
bfs(1,cost);
bfs(mx,dm);
g<<dm[mx];
return 0;
}