Pagini recente » Cod sursa (job #920048) | Cod sursa (job #2916541) | Cod sursa (job #437754) | Cod sursa (job #688977) | Cod sursa (job #2570534)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define MAX 100010
using namespace std;
int n,x,y,ans,last;
int dp[MAX];
bool acc[MAX];
vector<int> nd[MAX];
queue<int> q;
void init(){
for(int i=1;i<=n;i++)acc[i]=dp[i]=0;
}
void bfs(int start){
acc[start]=1; q.push(start); dp[start]=1;
while(!q.empty()){
int ac=q.front(); q.pop();
for(auto i:nd[ac])
if(!acc[i]){
acc[i]=1;
dp[i]=dp[ac]+1;
q.push(i);
}
last=ac;
ans=dp[ac];
}
}
int main()
{
ifstream f ("darb.in");
ofstream g ("darb.out");
f>>n;
for(int i=1;i<n;i++)
f>>x>>y,
nd[x].push_back(y),
nd[y].push_back(x);
bfs(1);
init(); bfs(last);
g<<ans<<'\n';
f.close ();
g.close ();
return 0;
}