为啥题解清一色全是求次大值再做题的
要找的是路径上小于当前边权的最大边权
那为啥不直接在 LCA 里判掉
int lca(int x,int y,int less){
if(deep[x]<deep[y]) swap(x,y);
int res=-1;
for(int i=16;i>=0;--i){
if(deep[fa[i][x]]>=deep[y]){
if(w[i][x]<less) res=max(res,w[i][x]);
x=fa[i][x];
}
}
if(x==y) return res;
for(int i=16;i>=0;--i){
if(fa[i][x]!=fa[i][y]){
if(w[i][x]<less) res=max({res,w[i][x]});
if(w[i][y]<less) res=max({res,w[i][y]});
x=fa[i][x];
y=fa[i][y];
}
}
if(w[0][x]<less) res=max({res,w[0][x]});
if(w[0][y]<less) res=max({res,w[0][y]});
return res;
}