Pagini recente » Diferente pentru problema/drum3 intre reviziile 4 si 5 | Istoria paginii utilizator/amina | Cod sursa (job #1705186)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct node{
vector<int> fii;
}arbore[100005];
int n, x, y, frunza, lungime=0;
void DFS(int i, int distanta)
{
if( arbore[i].fii.size() ){
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;
while(f>>x>>y)
arbore[x].fii.push_back(y);
DFS(1, 0);
DFS(frunza, 0);
g<<lungime;
return 0;
}