WA
void dfs(int u,int fa){
dfn[u]=low[u]=++dfncnt;
int child=0;
for(int v:e[u]){
if(!dfn[v]){
dfs(v,u);
low[u]=min(low[u],low[v]);
++child;
if(low[v]>=dfn[u]&&u!=now)iscut[u]=1;
}
else if(v!=fa)low[u]=min(low[u],low[v]);
}
if(u==now&&child>1)iscut[u]=1;
}
AC
void dfs(int u,int fa){
dfn[u]=low[u]=++dfncnt;
int child=0;
for(int v:e[u]){
if(!dfn[v]){
dfs(v,u);
low[u]=min(low[u],low[v]);
++child;
if(low[v]>=dfn[u]&&u!=now)iscut[u]=1;
}
else if(v!=fa)low[u]=min(low[u],dfn[v]);
}
if(u==now&&child>1)iscut[u]=1;
}