Pagini recente » Istoria paginii algoritmiada-2019/runda-maraton/solutii/niciomare | Cod sursa (job #68397) | Cod sursa (job #2254614) | Cod sursa (job #442847) | Cod sursa (job #2409947)
#include <fstream>
#include <vector>
#define maxn 100005
using namespace std;
vector <int> V[maxn];
ifstream cin("darb.in");
ofstream cout("darb.out");
int lista[maxn],nr[maxn],n,x,y,nod=1,verificat[maxn],cost[maxn];
void read(){
cin>>x>>y;
V[x].push_back(y);
nr[x]++;
V[y].push_back(x);
nr[y]++;
}
void bfs(){
int ultim=1;
lista[ultim]=nod;
cost[nod]=1;
verificat[nod]=1;
for(int prim=1; prim<=ultim; prim++)
for(int i=0; i<nr[lista[prim]]; i++)
if(!verificat[V[lista[prim]][i]]){
lista[++ultim]=V[lista[prim]][i];
cost[lista[ultim]]=cost[lista[prim]]+1;
verificat[lista[ultim]]=1;
}
nod=lista[ultim];
}
int main(){
cin>>n;
for(int i=1; i<n; i++)
read();
bfs();
for(int i=1; i<=n; i++)
verificat[i]=0;
verificat[nod]=1;
bfs();
cout<<cost[nod];
return 0;
}