#include #include #include #include using namespace std; typedef long long ll; int n,k,q,sz[100005],hv[100005],id[100005],hd[100005],cn[100005],vs[100005],dp[100005]; vectorg[100005]; ll seg[1<<19],la[1<<19],ans; void dfs1(int v,int p){ sz[v]=1; hv[v]=-1; for(int i=0;isz[hv[v]])hv[v]=g[v][i]; } } } void dfs2(int v,int p,int d,int h){ hd[k]=h; cn[k]=cn[h]; dp[k]=d; id[v]=k; vs[k++]=v; if(hv[v]!=-1){ dfs2(hv[v],v,d+1,h); } for(int i=0;i0){ la[o*2+1]+=la[o]; la[o*2+2]+=la[o]; } la[o]=0; } void add(int a,int b,int r,int l,int o,ll x){ lazy(r,l,o); if(l