Pagini recente » Cod sursa (job #3227912) | Cod sursa (job #70995) | Cod sursa (job #1518118) | Cod sursa (job #450624) | Cod sursa (job #1705183)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct nod{
vector<int>fii;
}arbore[10000];
int n,a,b,lungime=0,frunza;
void dfs(int i, int distanta)
{
if(arbore[i].fii.size()!=0){
lungime++;
for(int j=0;j<arbore[i].fii.size();j++){
dfs(arbore[i].fii[j],distanta+1);}}
else {
if(distanta>lungime)
{frunza=i; lungime=distanta;}
}
}
int main(){
ifstream f("darb.in");
ofstream g("darb.out");
f>>n;
//cout<<n<<endl;
for(int i=1;i<n;i++)
{
f>>a>>b;
arbore[a].fii.push_back(b);
}
dfs(1,0);
dfs(frunza,0);
cout<<lungime+1;
}