Pagini recente » Cod sursa (job #905771) | Cod sursa (job #905168) | Cod sursa (job #635225) | Cod sursa (job #2162423) | Cod sursa (job #1965248)
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
#include <cmath>
using namespace std;
const int MaxN=1e5+5;
FILE *IN,*OUT;
int N,D[MaxN],Max=0,maxpos,X,Y;
vector<int> Graph[MaxN];
void DFS(int node,int depth)
{
D[node]=depth;
if(depth>Max)
Max=depth,maxpos=node;
for(int i=0;i<Graph[node].size();i++)
if(D[Graph[node][i]]==0)
DFS(Graph[node][i],depth+1);
}
int main()
{
IN=fopen("darb.in","r");
OUT=fopen("darb.out","w");
fscanf(IN,"%d",&N);
for(int i=1;i<N;i++)
{
fscanf(IN,"%d%d",&X,&Y);
Graph[X].push_back(Y);
Graph[Y].push_back(X);
}
DFS(1,1);
memset(D,0,sizeof D);
Max=0;
DFS(maxpos,1);
fprintf(OUT,"%d\n",Max);
return 0;
}