#include using namespace std; #include #include template pairdiameter_dfs(const vector > >&G,int u,int p) { pairans(0,u); for(const pair&e:G[u]) { if(e.first!=p) { pairq=diameter_dfs(G,e.first,u); q.first+=e.second; ans=max(ans,q); } } return ans; } template T diameter(const vector > >&G) { pairp=diameter_dfs(G,0,-1); pairq=diameter_dfs(G,p.second,-1); return q.first; } int diameter(const vector >&G) { vector > >H(G.size()); for(int i=0;i>N; vector >G(N); for(int i=1;i>a>>b; G[a-1].push_back(b-1); G[b-1].push_back(a-1); } cout<