Cod sursa(job #1926745)

Utilizator david.sachelarieDavid Sachelarie david.sachelarie Data 14 martie 2017 17:34:27
Problema Diametrul unui arbore Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.31 kb
#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;
}