Pagini recente » Cod sursa (job #895008) | Cod sursa (job #450607) | Cod sursa (job #1093991) | Cod sursa (job #1578603) | Cod sursa (job #2408022)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NMAX 100000
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int n,x,y,dist[NMAX+1],viz[NMAX+1],last;
vector <int> nod[NMAX+1];
queue <int> q;
void bfs(int start){
q.push(start);
for(int i=1;i<=n;i++){
dist[i]=0;
viz[i]=0;
}
dist[start]=1;
while(!q.empty()){
x=q.front();
q.pop();
viz[x]=1;
last=x;
for(int i=0;i<nod[x].size();i++){
if(!viz[nod[x][i]]){
q.push(nod[x][i]);
dist[nod[x][i]]=dist[x]+1;
}
}
}
}
int main(){
f>>n;
for(int i=1;i<n;i++){
f>>x>>y;
nod[x].push_back(y);
nod[y].push_back(x);
}
bfs(1);
bfs(last);
g<<dist[last];
f.close();
g.close();
}