Pagini recente » Cod sursa (job #3269765) | Cod sursa (job #1131976) | Cod sursa (job #696461) | Cod sursa (job #789556) | Cod sursa (job #2929380)
#include <fstream>
#include <vector>
#define NMAX 100002
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector<int> V[NMAX];
int n;
bool viz[NMAX];
int maxd = -1 ,maxNode = -1;
void DFS(int node, int d){
viz[node] = true;
if(d > maxd){
maxd = d;
maxNode = node;
}
for(vector<int>::iterator it = V[node].begin(); it != V[node].end(); it++){
if(viz[*it] == 0){
DFS(*it, d+1);
}
}
}
int main()
{
fin >> n;
int x1, x2;
while(fin >> x1 >> x2){
V[x1].push_back(x2);
V[x2].push_back(x1);
}
int minNode;
for(int i=1; i<=n; i++){
if(V[i].size() % 2 == 0){
minNode = i;
}
}
DFS(minNode, 1);
maxd = -1;
for(int i=1; i<=n; i++)
viz[i] = false;
DFS(maxNode, 1);
fout << maxd;
return 0;
}