Pagini recente » Cod sursa (job #3145709) | Cod sursa (job #826154) | Cod sursa (job #364631) | Cod sursa (job #1675441) | Cod sursa (job #1101063)
#include<fstream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<string>
#include<queue>
#define abs(x) ((x>0)?(x):(-(x)))
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define ll long long
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int Nmax = 100005;
vector<int> G[Nmax];
int mark[Nmax];
int N,maxl,maxt;
void Dfs(int x,int l){
mark[x]=1;
if(l>maxl) maxl=l,maxt=x;
for(vector<int>::iterator it=G[x].begin();it!=G[x].end();++it){
if(!mark[*it]){
Dfs(*it,l+1);
}
}
}
int main(){
in>>N;
for(int i=1;i<N;i++){
int x,y;
in>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
Dfs(1,1);
memset(mark,0,sizeof(mark));
maxl=0;
Dfs(maxt,1);
out<<maxl<<'\n';
return 0;
}