Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;int lazy[maxn<<1];int l[maxn],r[maxn];int h[maxn],mem;struct{int v,next;}e[maxn];void add(int u,int v){e[mem].v=v;e[mem].next=h[u];h[u]=mem++;}int a[maxn],ans[maxn];int shit[maxn];int cnt;void dfs(int u){shit[cnt]=u;l[u]=cnt++;for(int i=h[u];i+1;i=e[i].next){int v=e[i].v;ans[v]=ans[u]+1;dfs(v);}r[u]=cnt-1;}