Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>#define fi first#define se secondusing namespace std;const int maxn = 100000 + 10;vector<int> g[maxn];int d[maxn];void gao(pair<int,int> &a,int d){if(a.fi < d)a.fi = d;if(a.fi > a.se) swap(a.fi,a.se);}int res;void dfs(int u,int now){d[u] = 1;int & ans = d[u];pair<int,int> t;t.fi = t.se = 0;for(auto v:g[u]) {dfs(v,now+1);ans = max(ans,1+d[v]);gao(t,d[v]);}//printf("(%d %d %d %d)\n",u,now,t.fi,t.se);res = max(res,now+t.fi+t.se);}int main(){int n;while(scanf("%d",&n)==1) {