#include #include #include #include #include using namespace std; int N; int W[2<<17]; vectorG[2<<17]; vectorS; int L[2<<17],R[2<<17]; long dfs0(int u,int p) { L[u]=S.size(); S.push_back(W[u]); long sum=W[u]; for(int v:G[u])if(v!=p)sum+=dfs0(v,u); S[L[u]]=sum; R[u]=S.size(); return sum; } long ALL,ans=9e18; setLft,ret; long f(long x,long y,long z){return max({x,y,z})-min({x,y,z});} void dfs1(int u,int p) { setcur; for(int v:G[u])if(v!=p) { dfs1(v,u); if(cur.size()>N; for(int i=0;i>W[i]; for(int i=1;i>u>>v; u--,v--; G[u].push_back(v); G[v].push_back(u); } ALL=dfs0(0,-1); dfs1(0,-1); cout<