Pagini recente » Cod sursa (job #743030) | Cod sursa (job #60596) | Borderou de evaluare (job #1036756) | Cod sursa (job #1515969) | Cod sursa (job #1926745)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
vector <int> v[100001];
class graphOperation{
private:
vector <int> v[100000];
int final_node;
int maximum_number;
public:
graphOperation(){
maximum_number=0;
}
void readInVector(int a,int b){
v[a].push_back(b);
v[b].push_back(a);
}
void dfs(int node,int number,int parent){
int i;
if(number>maximum_number){
maximum_number=number;
final_node=node;
}
for(i=0;(unsigned int)i<v[node].size();i++)
if(v[node][i]!=parent)
dfs(v[node][i],number+1,node);
}
int getFinalNode(){
int a;
a=final_node;
return a;
}
int getMaximumNumber(){
int a;
a=maximum_number;
return a;
}
};
int main()
{
int n,i,a,b;
ifstream fin("darb.in");
ofstream fout("darb.out");
graphOperation operation;
fin>>n;
for(i=0;i<n;i++){
fin>>a>>b;
operation.readInVector(a,b);
}
operation.dfs(3,0,-1); /*random number; better 0*/
//cout<<operation.getMaximumNumber();
operation.dfs(operation.getFinalNode(),0,-1);
fout<<operation.getMaximumNumber()+1<<endl;
return 0;
}