Pagini recente » Cod sursa (job #2145191) | Cod sursa (job #42032) | Cod sursa (job #583580) | Cod sursa (job #1402580) | Cod sursa (job #2769990)
#include <iostream>
#include <string.h>
#include <vector>
#include <fstream>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<vector<int>> v;
int maxi=0;
int solve(int nod) {
int n=v[nod].size();
if(n==0)
return 0;
int maxi1=0, maxi2=0;
for(int i=0;i<n;i++) {
int c=1+solve(v[nod][i]);
if(c>maxi1) {
maxi2=maxi1;
maxi1=c;
}
else if(c<maxi1&&c>maxi2)
maxi2=c;
}
maxi=max(maxi, maxi1+maxi2);
return maxi1;
}
int main()
{
int n, a, b;
in>>n;
v.resize(n+1);
int mini=n+1;
for(int i=0;i<n-1;i++) {
in>>a>>b;
mini=min(mini, a);
v[a].push_back(b);
}
int aux=solve(mini);
out<<maxi+1;
}