Pagini recente » Cod sursa (job #3168389) | Cei mai harnici utilizatori infoarena | Cod sursa (job #1976201) | Cod sursa (job #646322) | Cod sursa (job #1705187)
#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;
while(f>>a>>b)
arbore[a].fii.push_back(b);
dfs(1,0);
dfs(frunza,0);
g<<lungime+1;
}